介绍一个好东西C++11

2021-06-09 09:05

阅读:682

标签:编程   区间   成员   语法   成员函数   for   类型   泛型   析构   

c++11引入了auto类型说明符,auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。

ranged-base for 范围for
C++11 引入了一种崭新的for循环形式,可以逐一迭代某个给定的区间、数组、集合内的每个元素。其他编程语言可能称此为foreach循环。
其一般性语法如下:

for ( decl : coll)
{
    statement
}

实例:

for ( int i :{ 2,3,5,7,9,13,17,19})
{
     cout vec;
...
for(auto elem : vec)    //编译器会一个一个的取vec中的元素取出来copy到elem中去,然后输出。
{
    cout

这里声明elem为一个引用很重要,若不这么做,for循环中 的语句会作用在元素的一份本地拷贝身上。

这意味着,为了避免调用每个元素的copy构造函数和析构函数,你通常应该声明当前元素为一个const引用。于是一个用来“打印某集合内所有元素”的泛型函数应该写成这样:

template 
void printElements (const T& coll)
{
	for(const auto& elem : coll) {
		std::cout 

范围for循环有两种用法:可以遍历字符串,数组,map,vector等容器。

介绍一个好东西C++11

标签:编程   区间   成员   语法   成员函数   for   类型   泛型   析构   

原文地址:https://www.cnblogs.com/CSE-kun/p/14495762.html


评论


亲,登录后才可以留言!