随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。

假设有这样的一个vector:
vector<int> valList = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
需要输出这个vector中的每个元素,原型如下:

void ShowVec(const vector<int>& valList)
{
}
int main(int argc, char* argv[])
{vector<int> valList = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };ShowVec(valList);return 0;
}

1. For 循环

void ShowVec(const vector<int>& valList)
{int count = valList.size();for (int i = 0; i < count;i++){cout << valList[i] << endl;}
}

2. For+迭代器

void ShowVec(const vector<int>& valList)
{for (vector<int>::const_iterator iter = valList.cbegin(); iter != valList.cend(); iter++){cout << (*iter) << endl;}
}

3. For+Auto关键字(仅C++11)

void ShowVec(const vector<int>& valList)
{for (auto iter = valList.cbegin(); iter != valList.cend(); iter++){cout << (*iter) << endl;}
}

4. For+Auto关键字(仅C++11)

void ShowVec(const vector<int>& valList)
{for (auto val : valList){cout << val << endl;}
}

5. For_each+函数

template<typename T>
void printer(const T& val)
{cout << val << endl;
}
void ShowVec(const vector<int>& valList)
{for_each(valList.cbegin(), valList.cend(), printer<int>);
}

6. For_each+仿函数

template<typename T>
struct functor
{void operator()(const T& obj){cout << obj << endl;}
};
void ShowVec(const vector<int>& valList)
{for_each(valList.cbegin(), valList.cend(), functor<int>());
}

7. For_each+Lambda函数(仅C++11)

void ShowVec(const vector<int>& valList)
{for_each(valList.cbegin(), valList.cend(), [](const int& val)->void{cout << val << endl; });
}

C++之vector中元素的N种遍历相关推荐

  1. vector 删除元素的几种方法

    vector 删除元素的几种方法 1.利用成员函数pop_back()可以删除最后一个元素: 2.利用成员函数erase()可以删除由一个iterator指出的元素: 3.通过STL中的算法库函数re ...

  2. 解析Jquery取得iframe中元素的几种方法

    iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&quo ...

  3. Jquery取得iframe中元素的几种方法(转载)

    Jquery取得iframe中元素的几种方法(转载) iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法: 父窗口操作IFRAME: ...

  4. Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!...

    query取得iframe中元素的几种方法 在iframe子页面获取父页面元素 代码如下: $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页 ...

  5. Javascript循环删除数组中元素的3种方法

    本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍: 问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的 ...

  6. vector 中元素的删除

    vector 中删除元素的方法是:b.erase(it);  //b是vector, it 是 vector::iterator 但是删除vector 中的元素有些诡异(^_^),稍不注意,就会出错. ...

  7. vector中元素的删除

    如果想要删除vector中值为val的元素,最容易想到的方法就是对vector进行遍历,然后遇到值为val时就将其删除.比较好的是vector容器有erase操作. 但是这儿需要注意,与list中的e ...

  8. C++ std::vector删除元素的几种方式及区别

    容器vector在删除过程中,常用的函数. 函数 作用 pop_back() 删除 vector 容器中最后一个元素,该容器的大小(size)会减 1,但容量(capacity)不会发生改变. era ...

  9. python基础教程:修改Python列表中元素的几种方法

    一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...

最新文章

  1. 「linux网络管理」OSI模型
  2. java redis释放连接_redis在应用中使用连接不释放问题解决
  3. 第一次参加数学建模竞赛如何夺取一等奖
  4. mysql中engine=innodb和engine=myisam的区别
  5. 华为鸿蒙osbeta发布会,华为鸿蒙 OS Beta 3
  6. Scala中class、object、case class、case object区别
  7. 文本关键词提取算法总结
  8. C语言编程学习使用auto定义变量的用法
  9. Stata:调节中介效应检验
  10. 运动会加油稿计算机学院150字,学校运动会加油稿150字5篇
  11. 【文本编辑】PPT文档被设置密码允许只读模式【解除限制】
  12. poco常用语法合集
  13. uniapp上传图片视频插架分享
  14. 天铁托甲catarinite
  15. 非常简洁的vsPlayAudio在线音乐播放器插件
  16. 苹果Xr用不了浏览器显示服务器已停止响应,苹果xrsafari浏览器用不了?
  17. ITS Mobile Template interpretation failed. Template does not exist
  18. qq空间网页设计_网页设计中的负空间
  19. 当迅雷显示“文件路径超出系统限制”时怎么办
  20. 想去微软工作吗?这些岗位年薪超过1100000元

热门文章

  1. 2022-08-03 乐理知识(二) 简谱的拍号——拍号,小节,音符,附点和休止符的分类,什么是拍子,拍子的强弱关系,常见拍子:单拍子.复拍子和混合拍子,一拍子和散拍子
  2. PyCharm消除FutureWarning
  3. 专访吴恩达:加入百度一切比预想的要快
  4. Locking up men does nothing more than keep them off the streets.
  5. 7-2 删除重复字符 (20 分)
  6. 鸿蒙合香丸多少钱一盒,鸿蒙合香丸的功效与作用 详解鸿蒙合香丸的三大好处...
  7. .NET对JAVA进行AES加密(SHA1PRNG)及解密方法
  8. 神仙UI!Vue3.2手写电量监控系统(新开源)
  9. 微软承认最新Win10更新会致电脑蓝屏死机
  10. SpringSecurity前后端分离(包含token和验证码登录)