个人导航网站源码专业做外贸英文公司网站
2026/1/10 0:05:29 网站建设 项目流程
个人导航网站源码,专业做外贸英文公司网站,公众号编辑器免费模板,嘉兴网站制作方案写这篇文章主要是为了记录vector的一些用法#xff0c;之前一直没有过系统的记录#xff0c;导致自己老是忘记遍历1、下标遍历#include bits/stdc.h using namespace std;int main() {vectorint a {1, 2, 3, 4, 5};// 下标遍历for (int i 0; i a.size…写这篇文章主要是为了记录vector的一些用法之前一直没有过系统的记录导致自己老是忘记遍历1、下标遍历#include bits/stdc.h using namespace std; int main() { vectorint a {1, 2, 3, 4, 5}; // 下标遍历 for (int i 0; i a.size(); i) { cout a[i] ; } return 0; } // 输出1 2 3 4 52、迭代器遍历//c 11以上 vectorint a {1, 2, 3, 4, 5}; // 范围for遍历只读 for (auto num : a) { cout num ; } // 如需修改元素用引用 for (auto num : a) { num * 2; // 所有元素乘2a变为{2,4,6,8,10} }3、反向遍历// C11 for (auto it a.rbegin(); it ! a.rend(); it) { cout *it ; }4、特定位置开始遍历vectorint a {1, 2, 3, 4, 5}; int start 2; // 从下标2第三个元素开始遍历 for (int i start; i a.size(); i) { cout a[i] ; // 输出3 4 5 } // 场景1从下标2开始遍历到末尾 for (auto it a.begin() 2; it ! a.end(); it) { cout *it ; // 输出3 4 5 } // 场景2遍历下标1到3左闭右开即1、2、3 for (auto it a.begin() 1; it ! a.begin() 4; it) { cout *it ; // 输出2 3 4 } // 场景3反向遍历最后3个元素 for (auto it a.rbegin(); it ! a.rbegin() 3; it) { cout *it ; // 输出5 4 3 }5、遍历矩阵#include bits/stdc.h using namespace std; int main() { vectorvectorint mat {{1, 2}, {3, 4}, {5, 6}}; // 外层遍历每一行row是当前行的vectorint for (auto row : mat) { // 用引用避免拷贝提升效率 // 内层遍历当前行的每个元素 for (auto num : row) { cout num ; } cout endl; } return 0; }赋值1、初始化// 初始化时赋值多个元素 vectorint a {1, 2, 3, 4, 5}; // C11支持 vectorstring b{apple, banana, orange}; // 初始化长度为5所有元素为0 vectorint a(5, 0); // 初始化长度为3所有元素为9 vectorint b(3, 9);2、拷贝vectorint a {1, 2, 3}; vectorint b; // 将a的所有值拷贝给bb变为{1,2,3} b a; // 覆盖赋值b原有值被替换为{4,5} b {4, 5};3、assignvectorint a; // 先赋值5个8a变为{8,8,8,8,8} a.assign(5, 8); // 覆盖原有值赋值3个6a变为{6,6,6} a.assign(3, 6); // 输出6 6 6 vectorint a {1, 2, 3, 4, 5}; vectorint b; // 赋值a的全部区间begin()到end()b变为{1,2,3,4,5} b.assign(a.begin(), a.end()); vectorint c; // 赋值a的下标1到3的区间左闭右开c变为{2,3,4} c.assign(a.begin() 1, a.begin() 4); // 数组转vector int arr[] {10, 20, 30}; vectorint d; // 赋值数组的全部元素d变为{10,20,30} d.assign(arr, arr sizeof(arr)/sizeof(int));4、fill修改特定区间的值为特定vectorint a {1,2,3,4,5}; int k 2; fill(a.end() - k, a.end(), 0); // 最后2个元素改为0 // 输出1 2 3 0 0 vectorint a {1,2,3,4,5}; int k 3; fill(a.begin(), a.begin() k, 8); // 前3个元素改为8 // 输出8 8 8 4 5 vectorint a {1,2,3,4,5}; // 修改倒数第3个到倒数第1个元素为7 fill(a.rbegin() 1, a.rbegin() 4, 7); // 输出1 7 7 7 5注意fill的区间是左闭右开某个特定元素出现的个数#include bits/stdc.h using namespace std; int main() { vectorint a {1, 2, 3, 2, 2, 4, 5, 2}; int target 2; // 要统计的目标元素 // 统计整个vector中target的个数 int cnt count(a.begin(), a.end(), target); cout 元素 target 出现的次数 cnt endl; // 输出4 return 0; }求和#include bits/stdc.h // 注意accumulate属于numeric头文件bits/stdc.h已包含 using namespace std; int main() { vectorint a {1, 2, 3, 4, 5}; // 核心语法accumulate(起始迭代器, 结束迭代器, 初始值) int sum accumulate(a.begin(), a.end(), 0); // 初始值0和元素类型一致 // 浮点型示例 vectordouble b {1.5, 2.5, 3.0}; double sum_d accumulate(b.begin(), b.end(), 0.0); // 初始值用0.0避免精度丢失 cout int总和 sum endl; // 输出15 cout double总和 sum_d endl; // 输出7.0 return 0; } // 自定义累加元素的平方和1²2²3²4²5²55 int sum_sq accumulate(a.begin(), a.end(), 0, [](int total, int num) { return total num * num; }); // 指定区间求和 vectorint a {1, 2, 3, 4, 5}; // 求和下标1到3左闭右开的元素2349 int sum accumulate(a.begin() 1, a.begin() 4, 0); cout 区间总和 sum endl; // 输出9查找元素find#include bits/stdc.h using namespace std; int main() { vectorint a {10, 20, 30, 20, 40}; int target 20; // 核心语法find(起始迭代器, 结束迭代器, 目标元素) auto it find(a.begin(), a.end(), target); // 判断是否找到迭代器不等于end()即为找到 if (it ! a.end()) { // 迭代器转下标it - a.begin() cout 元素 target 存在第一个位置 it - a.begin() endl; // 输出1 } else { cout 元素 target 不存在 endl; } return 0; }求最大值最小值#include bits/stdc.h using namespace std; int main() { vectorint nums {3, 1, 4, 1, 5, 9, 2, 6}; if (nums.empty()) { cout vector为空 endl; return 0; } // 核心语法min_element(起始迭代器, 结束迭代器) auto min_it min_element(nums.begin(), nums.end()); auto max_it max_element(nums.begin(), nums.end()); // 迭代器解引用获取值 int min_val *min_it; int max_val *max_it; cout 最小值 min_val endl; // 输出1 cout 最大值 max_val endl; // 输出9 return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询