范围for语句
2015-03-10 19:07
162 查看
把vector对象中的每个元素都翻倍
#include"stdafx.h"
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector <int> v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
vector <int>::iterator Iter;
for (auto &r : v1)
r *= 2;
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
getchar();
}
输出结果为:
C++11新标准中引入了一种更为简单的for语句,它可以遍历容器或其他序列的所有元素。范围for语句(range for statement)的语法形式为:
for(declation:expression)
statement;
其中,expression表示的必须是一个序列,比如花括号括起来的初始值列表、数组、或者vector或string类型说明符,这个关键字可以令编译器帮助我们指定合适的类型。如果需要对序列中的元素执行写操作,循环变量必须声明成引用类型。
每次迭代都会重新定义循环控制变量,并将其初始化成序列中的下一个值,之后才会执行statement。像往常一样,statement可以使一条单独的语句也可以是一个块。所有元素都处理完毕后循环终止。范围for语句的定义来源于与之等价的传统for语句:
for(auto beg=v.begin(),end=v.end();beg!=end;++beg)
{
auto &r=*beg;//r必须是引用类型,这样才能对元素执行写操作
r*=2;//将v中的 每个元素的值翻倍。
}
此外,大家要知道,不能通过for语句来增加vector对象中元素,因为在for语句中,预存了end()的值。一旦在序列中添加(删除)元素,end()函数的值就可能变得无效了。
把vector对象中的每个元素都翻倍
#include"stdafx.h"
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector <int> v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
vector <int>::iterator Iter;
for (auto &r : v1)
r *= 2;
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
getchar();
}
输出结果为:
C++11新标准中引入了一种更为简单的for语句,它可以遍历容器或其他序列的所有元素。范围for语句(range for statement)的语法形式为:
for(declation:expression)
statement;
其中,expression表示的必须是一个序列,比如花括号括起来的初始值列表、数组、或者vector或string类型说明符,这个关键字可以令编译器帮助我们指定合适的类型。如果需要对序列中的元素执行写操作,循环变量必须声明成引用类型。
每次迭代都会重新定义循环控制变量,并将其初始化成序列中的下一个值,之后才会执行statement。像往常一样,statement可以使一条单独的语句也可以是一个块。所有元素都处理完毕后循环终止。范围for语句的定义来源于与之等价的传统for语句:
for(auto beg=v.begin(),end=v.end();beg!=end;++beg)
{
auto &r=*beg;//r必须是引用类型,这样才能对元素执行写操作
r*=2;//将v中的 每个元素的值翻倍。
}
此外,大家要知道,不能通过for语句来增加vector对象中元素,因为在for语句中,预存了end()的值。一旦在序列中添加(删除)元素,end()函数的值就可能变得无效了。
相关文章推荐
- 标准库类型vector和范围for语句
- std 中for_each 算法与c++11范围for语句
- C++2.0--范围for语句
- C++11特性——基于范围的for语句
- Cocos2dx3.0过渡篇 各种遍历与范围for语句的使用【转】
- Cocos2dx3.0过渡篇(二十二)各种遍历与范围for语句的使用
- 【足迹】C++ primer 范围for语句
- C++11 范围for语句
- 范围 for 语句与二维数组
- C++ Primer中的陌生概念四:范围for语句
- C++ Prime:范围for语句
- C++中基于范围的for语句
- c++11标准范围for语句的尝试
- C++11范围for(range for)语句
- C++中范围for语句
- 解析C++中的for循环以及基于范围的for语句使用
- 使用范围for语句遍历字符串,中间变量是字符型还是字符串。
- 范围for语句
- cocos2d-x学习笔记——各种遍历与范围for语句的使用
- C++中范围for语句