容器遍历之foreach学习心得
来源:互联网 发布:python 对象转字符串 编辑:程序博客网 时间:2024/06/05 15:37
C++中遍历容器的方法有很多种,如普通for循环+容器长度,STL迭代器等,其中,for each的用法最简洁。
一、标准C++的写法如下:
for each (object var in collection_to_loop)
{
}
注:在VS编辑器中,可以直接选择foreach即可生成,但生成的代码见上,for与each之间有空格。
STL的算法库中,还提供了一个for_each()函数,它可以指定区间。
此外,还可以使用“基于范围的for循环(C++11)”,见《C++PrimerPlus》P152。另附,VS2012下的示例代码:
#include
#include
using std::vector;
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
}
二、Qt中的写法
首先,Qt支持“for each (object var incollection_to_loop)”和“基于范围的for循环”两种标准C++的写法。其次,Qt也支持如下的写法:
foreach (objectvar,collection_to_loop)
类似与C#中的写法,for与each无空格,参数一是元素,参数二是容器,中间用逗号分隔。
三、对比C#中的写法
首先,C++的容器(container)在C#中称为集合(collection)。
其次,C#的for与each无空格,写法是:foreach (object var incollection_to_loop)。
再次,可以用var进行自动类型推断。
注:C#中的var,其作用类似与C++中的auto,但比auto功能强大。auto必须在当前语句中能推断出变量的类型,而var可以先声明变量,在后续的语句中再指定变量的类型,且变量类型指定后,不能再改变其类型(不再接收其他类型的赋值)。
总结:
1,C++需要变量容器,推荐使用标准C++的“for each (object var incollection_to_loop)”,它类似与C#,同时兼容VS和Qt;
2,如果是要选择区间遍历,可以使用STL的for_each()
0 0
- 容器遍历之foreach学习心得
- sqlserver2005 SSIS 之Foreach容器
- php之foreach遍历数组
- boost之Boost.Foreach遍历
- boost之Boost.Foreach遍历
- ETL设计之-Foreach 循环容器(Foreach 循环容器之(Foreach ADO 枚举器))
- 遍历容器 Java风格和STL风格 foreach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- javascript数组循环遍历之foreach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- smarty 遍历数组之foreach,section实例
- 20个实用便捷的CSS3工具、库及实例
- ntp服务器设置
- (小知识点)怎样导入外部lib,以及报错处理!常看
- 这三种特殊权限(suid、sgid、sticky)
- 为什么我要开博客
- 容器遍历之foreach学习心得
- Qt中应用STL算法库编译error分析
- [LeetCode254]Factor Combinations
- C++静态函数和全局结构体变量应用…
- Qt和Standard C++智能指针比较
- 小技巧:防跨文件或跨包类型重定义
- Qt调试信息分类和qDebug()导出到文…
- try-catch应用心得
- HDU2041青年歌手大奖赛_评委会打分