C++11 FAQ中文版:序列for循环语句
2012-05-02 10:55
162 查看
二28
Year 2011陈 良乔C++11
FAQ
序列for循环语句
序列for循环语句允许重复遍历一组序列,而这组序列可以是任何可以重复遍历的序列,如由begin()和end()函数定义的STL序列。所有的标准容器都可用作这种序列,同时它也同样可以是std::string,初始化列表(list),数组,以及任何由begin()和end()函数定义的序列,例如输入流。这里是一个序列for循环语句的例子:
可以这样理解这里的序列for循环语句,“对于v中的所有数据元素x”,循环由v.begin()开始,循环到v.end()结束。又如:
begin()函数(包括end()函数)可以是成员函数通过x.begin()方式调用,或者是独立函数通过begin(x)方式调用。
(译注:好像C#中早就有这种形式的for循环语句,用于遍历一个容器中的所有数据很方便,难道C++是从C#中借用过来的?)
或参见:
the C++ draft section 6.5.4 (note: changed not to use concepts)
[N2243==07-0103] Thorsten Ottosen:
Wording for range-based for-loop (revision 2).
[N3257=11-0027 ] Jonathan Wakely and Bjarne Stroustrup:
Range-based for statements and ADL (Option 5 was chosen).
Year 2011陈 良乔C++11
FAQ
序列for循环语句
序列for循环语句允许重复遍历一组序列,而这组序列可以是任何可以重复遍历的序列,如由begin()和end()函数定义的STL序列。所有的标准容器都可用作这种序列,同时它也同样可以是std::string,初始化列表(list),数组,以及任何由begin()和end()函数定义的序列,例如输入流。这里是一个序列for循环语句的例子:
void f(const vector& v) { for (auto x : v) cout << x << ‘n’; for (auto& x : v) ++x; // 使用引用,方便我们修改容器中的数据 }
可以这样理解这里的序列for循环语句,“对于v中的所有数据元素x”,循环由v.begin()开始,循环到v.end()结束。又如:
for (const auto x : { 1,2,3,5,8,13,21,34 }) cout << x << ‘n’;
begin()函数(包括end()函数)可以是成员函数通过x.begin()方式调用,或者是独立函数通过begin(x)方式调用。
(译注:好像C#中早就有这种形式的for循环语句,用于遍历一个容器中的所有数据很方便,难道C++是从C#中借用过来的?)
或参见:
the C++ draft section 6.5.4 (note: changed not to use concepts)
[N2243==07-0103] Thorsten Ottosen:
Wording for range-based for-loop (revision 2).
[N3257=11-0027 ] Jonathan Wakely and Bjarne Stroustrup:
Range-based for statements and ADL (Option 5 was chosen).
相关文章推荐
- C++11 FAQ中文版:序列for循环语句
- 简单使用序列for循环语句
- Python编程中的for循环语句学习教程
- C++11 FAQ中文版:类成员的内部初始化
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- js---javaScript(循环语句的使用实例)for while do....while(转移语句): break, continue , return
- Matlab编程与数据类型 -- 循环控制语句之一:for/end
- C++0x FAQ中文版:std::function 和 std::bind - [C++11 FAQ]
- Python2与python3中 for 循环语句基础与实例分析
- Python菜鸟--for 循环语句
- C++11FAQ 中文版带完整书签141页PDF
- C++11 for循环的新用法
- asp.net for循环语句第1/2页
- 批处理中的for循环语句
- C++11 FAQ中文版:Lambda表达式
- 编程作业50页第5题 使用for循环语句计算8+88+888.....前10项之和
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- 循环语句(for语句的用法)
- 增强的for循环语句
- Python 小技巧:for 循环后面接 else 语句