C++之vector中元素的N种遍历
随着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种遍历相关推荐
- vector 删除元素的几种方法
vector 删除元素的几种方法 1.利用成员函数pop_back()可以删除最后一个元素: 2.利用成员函数erase()可以删除由一个iterator指出的元素: 3.通过STL中的算法库函数re ...
- 解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&quo ...
- Jquery取得iframe中元素的几种方法(转载)
Jquery取得iframe中元素的几种方法(转载) iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法: 父窗口操作IFRAME: ...
- Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!...
query取得iframe中元素的几种方法 在iframe子页面获取父页面元素 代码如下: $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页 ...
- Javascript循环删除数组中元素的3种方法
本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍: 问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的 ...
- vector 中元素的删除
vector 中删除元素的方法是:b.erase(it); //b是vector, it 是 vector::iterator 但是删除vector 中的元素有些诡异(^_^),稍不注意,就会出错. ...
- vector中元素的删除
如果想要删除vector中值为val的元素,最容易想到的方法就是对vector进行遍历,然后遇到值为val时就将其删除.比较好的是vector容器有erase操作. 但是这儿需要注意,与list中的e ...
- C++ std::vector删除元素的几种方式及区别
容器vector在删除过程中,常用的函数. 函数 作用 pop_back() 删除 vector 容器中最后一个元素,该容器的大小(size)会减 1,但容量(capacity)不会发生改变. era ...
- python基础教程:修改Python列表中元素的几种方法
一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...
最新文章
- 「linux网络管理」OSI模型
- java redis释放连接_redis在应用中使用连接不释放问题解决
- 第一次参加数学建模竞赛如何夺取一等奖
- mysql中engine=innodb和engine=myisam的区别
- 华为鸿蒙osbeta发布会,华为鸿蒙 OS Beta 3
- Scala中class、object、case class、case object区别
- 文本关键词提取算法总结
- C语言编程学习使用auto定义变量的用法
- Stata:调节中介效应检验
- 运动会加油稿计算机学院150字,学校运动会加油稿150字5篇
- 【文本编辑】PPT文档被设置密码允许只读模式【解除限制】
- poco常用语法合集
- uniapp上传图片视频插架分享
- 天铁托甲catarinite
- 非常简洁的vsPlayAudio在线音乐播放器插件
- 苹果Xr用不了浏览器显示服务器已停止响应,苹果xrsafari浏览器用不了?
- ITS Mobile Template interpretation failed. Template does not exist
- qq空间网页设计_网页设计中的负空间
- 当迅雷显示“文件路径超出系统限制”时怎么办
- 想去微软工作吗?这些岗位年薪超过1100000元
热门文章
- 2022-08-03 乐理知识(二) 简谱的拍号——拍号,小节,音符,附点和休止符的分类,什么是拍子,拍子的强弱关系,常见拍子:单拍子.复拍子和混合拍子,一拍子和散拍子
- PyCharm消除FutureWarning
- 专访吴恩达:加入百度一切比预想的要快
- Locking up men does nothing more than keep them off the streets.
- 7-2 删除重复字符 (20 分)
- 鸿蒙合香丸多少钱一盒,鸿蒙合香丸的功效与作用 详解鸿蒙合香丸的三大好处...
- .NET对JAVA进行AES加密(SHA1PRNG)及解密方法
- 神仙UI!Vue3.2手写电量监控系统(新开源)
- 微软承认最新Win10更新会致电脑蓝屏死机
- SpringSecurity前后端分离(包含token和验证码登录)