C++容器元素遍历的问题
来源:互联网 发布:英国本科留学费用 知乎 编辑:程序博客网 时间:2024/05/21 10:48
C++容器遍历可以用容器的迭代器来完成,但是像vector、dequeue等线性容器可以用[]来索引,迭代方式如下:
#include<iostream>#include<vector>using namespace std;int main() { vector<int> temp(10,1);//有警告:unsigned int和int不匹配for(int i=0;i<temp.size();i++)cout<<temp[i]<<endl;//无警告for(unsigned int i=0;i<temp.size();i++)cout<<temp[i]<<endl;for(size_t i=0;i<temp.size();i++)cout<<temp[i]<<endl;for(auto iter=temp.begin();iter!=temp.end();iter++)cout<<*iter<<endl;<pre name="code" class="cpp"><span style="white-space:pre"></span>for(auto iter=temp.begin();iter!=next(temp.begin(),10);iter++)cout<<*iter<<endl;
<span></span>
<span style="white-space:pre"></span>for(int i=0;i<int(temp.size()-5);i++)cout<<temp[i]<<endl;system("pause"); return 0; }其中第一循环使有警告的,这个时候可以用第二个和第三个循环的办法把警告去掉,第四种循环用了迭代器,第五种中的next,还有类似的prev函数,返回输入迭代器,表示第一个迭代器后面/前面k个位置的迭代器。
注意一点:当for循环中存在比较时,必须把无符号数转换成有符号数进行比较,即只能用最后一种循环,因为如果无符号数相减,只能得到正数,如1-2=4294967295,而不是-1,当需要有负数时,就只能考虑最后一种循环了。
#include<iostream>using namespace std;int main() { unsigned int a=1,b=2;cout<<a-b<<endl; system("pause"); return 0; }结果:4294967295
0 0
- C++容器元素遍历的问题
- 遍历打印容器元素的函数模板
- 遍历set容器时,不能修改容器元素的状态
- 遍历元素的效率问题
- js:遍历容器中的元素
- stl容器遍历删除元素
- 【C++】容器元素的复制和变换
- 【C++】容器元素的复制和变换
- stl容器在循环遍历中删除元素的方式
- STL容器:在遍历的过程中删除元素
- C++ set容器元素的插入与遍历
- C++ multiset容器元素的插入搜索遍历
- C++ set容器元素的插入与遍历
- map容器(元素的添加/遍历/删除)
- C++ STL容器遍历删除元素的方法
- Java 遍历容器中元素的方法总结
- 遍历vector容器的效率问题
- 遍历vector容器的效率问题
- 本人试用过的精品软件推荐 Advanced RAR Password Recovery
- XML基础与应用
- java源码——统计字符串中字符出现的次数
- undefined reference to `assert' 编译错误
- 周迅7月闪嫁华裔演员高圣远,今天凌晨,高圣远在微博晒出一组和周迅在夏威夷恩爱度假的照片
- C++容器元素遍历的问题
- iOS基础8:自定义MyData/自定义SQLite用于网络判断,版本判断,图片缓存处理,下载或者上传的GET或POST请求,加密手段,.数据解析
- poj1141 dp
- vmware ubuntu linux tomcat Xshell Xftp 搭建网站后台——(六)mysql下载安装配置及编码设置
- java定时任务
- 时的叫声的拍摄的了拍摄了的爬开大声地说了商店街SD卡时的叫声
- 周杰伦个唱求婚打退堂鼓 昆凌惨变望夫石
- 大学十大遗憾排行榜
- 的抗生素那块大的说是第三方的