C++11新特性备忘

auto类型

auto item = val1 + val2;
编译器将根据val1+val2的值来推测item的类型。

vector和数组的区别

vector可以直接赋值

#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> i(10,5);
vector<int> b;
b=i;
cout<<b[5];
}

但是数组无法直接赋值。

简洁可以成为一种美德

vector迭代器的简洁方法:

vector<int> i={1,2,3,4,5,6,7};
auto pbeg=i.begin();
while(pbeg!=i.end())
cout<<*pbeg++;

使用前置版本的递增递减运算符。

可以节省资源。

Range for语句

int i[]={0,1,2,3,4};
for(auto c:i)
cout<<c;

标准库写法:

vector<int> i={0,1,2,3,4};
for(auto m=i.begin();m!=i.end();m++)
cout<<*m;

算法库中sort

#include<iostream>
#include<vector>
#include<algorithm> //算法库,一般的算法都在此库中。
using namespace std;
int main()
{
vector<int> a={4,98,9,23,21,31,654,1,3,46,13,46,413,5156,4165,465,1};
sort(a.begin(),a.end());
for(auto m=a.begin();m!=a.end();m++)
cout<<*m<<endl;
}

sort排序类似与快排,比冒泡不知道高到哪里去了。

Todo list

1.deltype 迭代?

cpp primer看到了370面