一、for循环新用法——基于范围的for循环

  for(元素类型 元素对象 : 容器对象)

  {

    //遍历

  }

  1)遍历字符串

  std::string str = "hello world";

  for(auto ch : str)

  {

    std::cout << ch << std::endl;

  }

  2)遍历数组

  int arr[] = {1,2,3,4,5};

  for(auto i : arr)

  {

    std::cout << i << std::endl;

  }

  //不用知道数组容器的大小,即可方便的遍历数组。

  2)遍历stl容器

  vector<int> v = {1,2,3,4,5};

  for(atuo& i : v)

  {

    std::cout << i << std::endl;

  }

  //通过引用可以修改容器内容

  3)遍历stl map

  std::map<int,int> map = { {1,1},{2,2},{3,3} };

  for(auto i : map)

  {

    std::cout << i.first << i.second << std::endl;

  }

  遍历map返回的是pair变量,不是迭代器。

C++11常用特性介绍——for循环新用法的更多相关文章

  1. C++11常用特性介绍——nullptr关键字及用法

    一.nullptr关键字及用法 1)NULL的二义性 void func(int) {} void func(int*) {} 当函数调用func(NULL)时会执行哪个函数呢? 先看C++对NULL ...

  2. C++11常用特性介绍——auto类型修饰符

    1.C++11常用特性介绍 从本篇开始介绍C++11常用特性,大致分:关键字及新语法.STL容器.多线程.智能指针内存管理,最后讲一下std::bind和std::function 二.关键字和新语法 ...

  3. C++11常用特性介绍——array容器

    std::array是具有固定大小的数组,支持快速随机访问,不能添加或删除元素,定义于头文件<array>中. 一.概要 array是C++11新引入的容器类型,与内置数组相比,array ...

  4. C++11常用特性介绍——decltype关键字

    一.decltype的意义 有时我们只想从表达式的类型推断出要定义的变量类型,但是不想用其值进行初始化的时候,C++11新标准引入了decltype类型说明符,它的作用是选择并返回操作数的数据类型,在 ...

  5. C++11常用特性介绍——Lambda表达式

    一.C++11采用配对的方括号[]来创建一个匿名函数并执行,如: #include <iostream> int main() { auto func = []{ std::cout &l ...

  6. C++11常用特性介绍——左值引用、右值引用

    一.左值.右值 1)左值:可以放在赋值号左侧.可以被赋值的值:左值必须要在内存中有实体. 2)右值:必须放在赋值号右侧.取出值赋值给其它变量:右值可以在内存中也可以在CPU寄存器中. 二.引用 引用是 ...

  7. C++11常用特性介绍——列表初始化

    一.列表初始化 1)C++11以前,定义初始化的几种不同形式,如下: int data = 0;   //赋值初始化 int data = {0};   //花括号初始化 int data(0); / ...

  8. C++11常用特性介绍——constexpr变量

    一.constexpr变量 1)将变量声明为constexpr类型以便由编译器来验证变量的值是否为一个常量表达式,声明为constexpr的变量一定是一个常量,而且必须用常量表达式来初始化,如: in ...

  9. 【转】C++11常用特性的使用经验总结

    出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方 ...

随机推荐

  1. 机器学习(ML)十五之梯度下降和随机梯度下降

    梯度下降和随机梯度下降 梯度下降在深度学习中很少被直接使用,但理解梯度的意义以及沿着梯度反方向更新自变量可能降低目标函数值的原因是学习后续优化算法的基础.随后,将引出随机梯度下降(stochastic ...

  2. c#显示行号设置方法

    工具→选项→文本编辑器→c#→常规→显示→勾选行号 反之取消即可.

  3. Flask 教程 第十七章:Linux上的部署

    本文翻译自The Flask Mega-Tutorial Part XVII: Deployment on Linux 这是Flask Mega-Tutorial系列的第十七部分,我将把Microbl ...

  4. C#中DataSet、SqlDataAdapter的使用-关于数据库操作

    本文链接:https://blog.csdn.net/xubaifu1997/article/details/51816785 DataSet 表示数据在内存中的缓存. 我的理解是,在内存中的数据表, ...

  5. Mac系统升级后git没法使用的问题

    今天更新了mac系统(Catalina)发现之前的项目没法提交,然后大概查了一下啊mac更新方面的问题 mac每次更新时系统就会卸载xcode 在终端输入  xcode-select --instal ...

  6. spring 的异步处理

    1.先解析几个类的用法 1.1  java.lang.annotation.Annotation @Target(ElementType.FIELD) @Retention(RetentionPoli ...

  7. Atcoder Beginner Contest153E(完全背包)

    完全背包,价值取题意代价的最小值 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ],b ...

  8. 【PAT甲级】1106 Lowest Price in Supply Chain (25分)

    题意:输入一个正整数N(<=1e5),两个小数P和R,分别表示树的结点个数和商品原价以及每下探一层会涨幅的百分比.输出叶子结点深度最小的商品价格和深度最小的叶子结点个数. trick: 测试点1 ...

  9. http://localhost:8080/sockjs-node/info?t=1556418283950 net:: ERR_CONNECTION_REFUSED(亲测有效~!)

    如果你的项目没有用到sockjs,vuecli3 运行npm run serve 之后network里面一直调用一个接口:http://localhost:8080/sockjs-node/info? ...

  10. P & R 9

    Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 明确Floorplan 处理的对象:对于数字设计的 Floorplan 来说,它是一个很依赖前后步骤的一个过程,这个可以看作是后 ...