专业编程基础技术教程

网站首页 > 基础教程 正文

C++11 for循环(基于范围的循环) c++编程for循环语句解说

ccvgpt 2024-10-19 03:27:01 基础教程 8 ℃

大家好,我是发哥,今天我们来说说C++11基于范围的for循环。

C++ 11标准之前(C++ 98/03 标准),for循环语法格式如下:

C++11 for循环(基于范围的循环) c++编程for循环语句解说

for(表达式 1; 表达式 2; 表达式 3){
//循环体
}

C++ 11基于范围的for循环,语法格式如下:

for (declaration : expression){
//循环体
}

其中declaration:表示此处要定义一个变量,该变量的类型为要遍历序列中存储元素的类型。需要注意的是,C++ 11 标准中,declaration参数处定义的变量类型可以用 auto 关键字表示,该关键字可以使编译器自行推导该变量的数据类型。

expression:表示要遍历的序列,常见的可以为事先定义好的普通数组或者容器,还可以是用 {} 大括号初始化的序列。

由此可可以看出,C++11同 C++ 98/03 中 for 循环的语法格式相比较,此格式并没有明确限定 for 循环的遍历范围,这是它们最大的区别,即旧格式的 for 循环可以指定循环的范围,而 C++11 标准增加的 for 循环,只会逐个遍历 expression 参数处指定序列中的每个元素。

示列代码如下:

#include <iostream>

#include <string>

#include <vector>

using namespace std;




int main()

{

char buf[] = "大家好,我是发哥,你们好";

int i;

int len = sizeof(buf);


{

//C++ 98/03 标准 for循环

cout << "c++ 98/03 for start" << endl;

for (i = 0; i < len; i++)

{

cout << buf[i];

}

cout << endl;

vector<char>value_vector(buf,buf+len);

vector<char>::iterator iter;

//vector 容器

for (iter = value_vector.begin(); iter != value_vector.end(); ++iter)

{

cout << *iter;

}

cout << endl;

cout << "c++ 98/03 for end" << endl;


}


{

//C++11 基于范围的for循环

cout << "c++11 基于范围的for循环 程序开始" << endl;

for (char ch : buf)

{

cout << ch;

}

cout << '!' << endl;

vector<char>value_vector(buf, buf + len);

//vector 容器

for (auto ch : value_vector)

{

cout << ch;

}

cout << '!' << endl;

cout << "c++11 基于范围的for循环 程序结束" << endl;


}


return 0;

}

代码运行结果如下:


今天就说到这,谢谢你的关注,记得点赞和评论哦,你的支持是我创建继续创造优秀作品的动力。

Tags:

最近发表
标签列表