【LibUIDK界面库系列文章】倒序遍历vector
2017-10-02 21:48
260 查看
作者:刘树伟
日期:2017-01-11
std::vector<int> vValue;
vValue.push_back(1);
vValue.push_back(2);
vValue.push_back(3);
std::vector<int>::reverse_iterator rit = vValue.rbegin();
// 注意,倒序遍历时,rit也是++,而不是--。
for (; rit != vValue.rend(); ++rit)
{
int nValue = *rit;
}
用下面的方法遍历是错误的,会引起死循环。
size_t nCount = vValue.size();
for (size_t i = nCount - 1; i >= 0; --i) {
int n = 0;
}
这是因为size_t是无符号整数,它是值永远是大于等于0的,所以 i >= 0永远为真,导致循环无法结束。
作者:刘树伟
日期:2017-01-11
std::vector<int> vValue;
vValue.push_back(1);
vValue.push_back(2);
vValue.push_back(3);
std::vector<int>::reverse_iterator rit = vValue.rbegin();
// 注意,倒序遍历时,rit也是++,而不是--。
for (; rit != vValue.rend(); ++rit)
{
int nValue = *rit;
}
用下面的方法遍历是错误的,会引起死循环。
size_t nCount = vValue.size();
for (size_t i = nCount - 1; i >= 0; --i) {
int n = 0;
}
这是因为size_t是无符号整数,它是值永远是大于等于0的,所以 i >= 0永远为真,导致循环无法结束。
相关文章推荐
- 【c++系列】vector初始化和遍历
- 【LibUIDK界面库系列文章】代码风格
- 【LibUIDK界面库系列文章】使用RichEdit制作QQ聊天记录控件
- 【LibUIDK界面库系列文章】值改变时可发出通知的通用数据类型
- 【LibUIDK界面库系列文章】Web Browser控件避免闪烁
- 【LibUIDK界面库系列文章】得到菜单的菜单窗口句柄
- 【LibUIDK界面库系列文章】解析网页中的table内容
- 【LibUIDK界面库系列文章】指定ComboBox的高度
- 【LibUIDK界面库系列文章】空闲消息
- 【LibUIDK界面库系列文章】制作个性化桌面图标
- 【LibUIDK界面库系列文章】Edit控件在不同操作系统及编译环境下的区别
- windows sdk编程系列文章 ---- 遍历USB设备,获取扫描仪序列号
- 【LibUIDK界面库系列文章】使用双窗口制作阴影边框时的激活问题
- 实战c++中的vector系列--vector的遍历(stl算法、vector迭代器(不要在循环中判断不等于end())、operator[])
- 【LibUIDK界面库系列文章】设置Edit控件的Margin
- 实战c++中的vector系列--vector的遍历(stl算法、vector迭代器(不要在循环中判断不等于end())、operator[])
- 【LibUIDK界面库系列文章】打开和保存文件对话框
- 【LibUIDK界面库系列文章】自绘List control的滚动条
- 【LibUIDK界面库系列文章】MDI菜单机制
- C#遍历整个文件夹及子目录的文件代码,.Net技术文章,Asp.net系列教程,Asp.n...