当前位置: 首页 > wzjs >正文

如何替换网站外贸网站优化在线推广

如何替换网站,外贸网站优化在线推广,wordpress 支付宝打赏,做铁艺需要什么网站一、Vector初始化&#xff1a;5种常用方式 ​​1. 默认构造​​ 创建空容器&#xff0c;适用于后续动态添加元素&#xff1a; std::vector<int> vec; // 空vector&#xff0c;size0 2. 指定大小和初值​​ 预分配空间并初始化元素&#xff1a; std::vector<int>…
一、Vector初始化:5种常用方式

​1. 默认构造​
创建空容器,适用于后续动态添加元素:

std::vector<int> vec;  // 空vector,size=0

2. 指定大小和初值​
预分配空间并初始化元素:

 
std::vector<int> vec(5);       // 5个0(int默认值)
std::vector<float> vec(3, 1.5); // 3个1.5

​3. 列表初始化(C++11)​
直接赋予初始值:

std::vector<char> vowels = {'a', 'e', 'i', 'o', 'u'};
 

4. 复制其他容器​
通过迭代器范围复制:

 
int arr[] = {1, 3, 5};
std::vector<int> vec(std::begin(arr), std::end(arr)); // 复制数组
std::vector<int> vec2(vec1);                         // 复制整个vector

​5. 使用assign()赋值​
清空现有元素并重新赋值:

 
vec.assign(4, 100);            // 4个100
vec.assign(oldVec.begin(), oldVec.end()); // 复制另一个容器的内容

二、增删改查:高效操作指南

​1. 添加元素​

  • ​尾部插入​​(高效,O(1)均摊):
     
    vec.push_back(10);     // 传统方式
    vec.emplace_back(20);  // 直接构造(避免拷贝,效率更高)

  • ​任意位置插入​​(谨慎使用,O(n)):
     
    vec.insert(vec.begin() + 2, 30);  // 在索引2处插入30
    vec.insert(vec.end(), {4, 5});    // 尾部插入多个元素

​2. 删除元素​

  • ​尾部删除​​(O(1)):
     
    vec.pop_back();  // 删除最后一个元素

  • ​任意位置删除​​(O(n)):
     
    vec.erase(vec.begin() + 1);          // 删除索引1处元素
    vec.erase(vec.begin(), vec.begin() + 2); // 删除前2个元素
    vec.clear();                         // 清空所有元素(容量不变)

​3. 修改元素​
随机访问修改(O(1)):

vec[0] = 100;                  // 无边界检查
vec.at(1) = 200;               // 有边界检查(越界抛异常)

​4. 查询元素​

 
int first = vec.front();       // 首元素
int last = vec.back();         // 末元素
int third = vec[2];            // 索引2处元素(无检查)
int fourth = vec.at(3);        // 索引3处元素(有检查)

⚠️ ​​性能警告​​:避免在头部/中间频繁插入删除,优先选择尾部操作!


三、判空操作:避免逻辑错误

​1. 一维Vector判空​
使用empty()代替size()==0(效率更高):

 
if (vec.empty()) {std::cout << "Vector is empty!";
}

​2. 二维Vector判空​
需检查外层和内层容器:

bool isMatrixValid(const vector<vector<int>>& mat) {if (mat.empty()) return false;          // 外层空for (const auto& row : mat) {if (row.empty()) return false;      // 内层存在空行}return true;
}

四、比较操作:规则与示例

​比较规则​​:

  • == / !=​:元素数量相同且对应位置值相等
  • < / <= / > / >=​:按字典序逐元素比较

​代码示例​​:

std::vector<int> a = {1, 2, 3};
std::vector<int> b = {1, 2, 4};cout << (a == b ? "Equal" : "Not equal");  // 输出:Not equal
cout << (a < b ? "a < b" : "a >= b");      // 输出:a < b(因 3 < 4)

五、二维数组:动态实现方案

​1. 初始化固定行列​

vector<vector<int>> matrix(3, vector<int>(4));      // 3行4列,默认值0
vector<vector<int>> matrix(2, vector<int>(3, -1));   // 2行3列,初始值-1

​2. 动态添加行/列​

 
matrix.push_back(vector<int>(5, 0));  // 添加一行5个0
matrix[0].resize(6);                 // 第一行扩展至6列

​3. 遍历与访问​

 
for (size_t i = 0; i < matrix.size(); ++i) {for (size_t j = 0; j < matrix[i].size(); ++j) {cout << matrix[i][j] << " ";}cout << endl;
}

💡 ​​适用场景​​:需动态调整行列数时优先使用,固定大小数组建议用原生数组。


总结:Vector核心要点

​维度​​关键点​​性能提示​
初始化预分配空间避免多次扩容reserve()减少内存重分配
增删改查尾部操作高效,中间操作昂贵优先用emplace_back替代push_back
判空多维容器需检查内层空empty()而非size()==0
比较字典序逐元素比较确保元素类型支持比较操作
二维数组灵活但内存非完全连续固定大小时考虑原生数组
http://www.dtcms.com/wzjs/569537.html

相关文章:

  • 佛山做网站的哪个好成都酒店设计十大公司排名
  • 国外设计教程网站美容医疗手机网站模板
  • 律师个人网站有用吗个人空间网站免费
  • 怎样上传自己做的网站小米发布会2024
  • 成品网站1688入口网页版lnmpa 搭建wordpress
  • ppt 如何做网站交互式义乌进货网
  • 网站上的付费文章怎么做网站托管服务内容
  • 个人制作网站工具房产网站怎么做400电话
  • 点击图片进入网站要怎么做国外做gif的网站
  • 建湖做网站多少钱电商网站设计
  • 企业网站设计方案书茶网站设计素材下载
  • 宿迁交通工程建设有限公司网站seo是什么职位简称
  • 学美工难吗南京seo关键词排名
  • 企业网站备案座机号网站更换
  • 网站后台改不了设置郑州包装设计公司都有哪些
  • ps怎么排版规划设计网站wordpress页面切换
  • 北京住房与建设部网站wordpress菜单插件
  • 网站建设的步骤图片过程绛帐做网站
  • 长沙seo网站优化公司网站备案管理办法
  • 做视频点播网站要多少带宽wordpress 如何添加模板
  • 备案的网站 能拿来做仿站吗网站制作论文范文
  • 广州建设专业网站网站后期推广方案
  • 电商网站统计怎么做重庆网站建设冒号
  • 济南企业做网站wordpress 创建主题
  • 乡村振兴网站建设宿迁网站建设托管
  • 有哪些行业需要做网站建设和推广网站建设的重点是什么
  • 网站demo怎么做国产最好的a级suv
  • 网站建设捌金手指花总三十网站引量方法
  • 全国高端网站网站系统建设合作合同范本
  • 页游网站建设佛山seo网站排名