最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C++新特性字符串、向量和数组笔记
时间:2016-08-14 编辑:简简单单 来源:一聚教程网
范围for(range for)
1 for (declaration: expression)
2 statement
vector和数组都是对象的集合,而引用不是对象。
vector对象可以高效地增长,在定义vector对象的时候设定其大小也就没什么必要了,事实上如果这么做性能可能更差。
C++11新特性:cbegin() & cend()
为了便于专门得到const_iterator类型的返回值,C++11新标准引入了两个新函数,分别是cbegin() 和cend().
如何理解复杂的数组声明?
1 int *ptrs[10]; //ptrs是含有10个整型指针的数组
2 int &refs[10] = /*?*/; //错误,不存在引用的数组
3 int (*Parray) [10] = &arr; //Parray指向一个含有10个整数的数组
4 int (&arrRef) [10] = arr; //arrRef引用一个含有10个整数的数组
对于Parray来说,从右向左理解就不太合理了。因为数组的维度是紧跟着被声明的名字的,所以就数组而言,由内向外阅读要比从右向左好多了。
首先是圆括号里面的,*Parray意味着Parray是个指针;
接下来观察右边,Parray是个指向大小为10的数组的指针;
最后观察左边,知道数组中的元素是int。
1 int ia[5];
2 auto ia2(ia); //ia2是一个整型指针
3 decltype(ia) ia3; //ia3是一个含有10个整数的数组
C++11新特性:标准库函数begin() 和end()
为了让指针的计算更安全、简单,C++11新标准引入了两个名为begin和end的函数,用于计算数组的迭代器。
多维数组的访问方式
1 int ia[3][4];
2 for (auto p = ia; p != ia + 3; ++p)
3 {
4 for (auto q = *p; q != *p + 4; ++q)
5 {
6 //do something
7 }
8 }
9
10 for (auto p = begin(ia); p != end(ia); ++p)
11 {
12 for (auto q = begin(*p); q != end(*p); ++q)
13 {
14 //do something
15 }
16 }
-
上一个: C# 理解泛型的学习笔记
-
下一个: asp.net C#中泛型的使用详解
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10