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排序类似与快排,比冒泡不知道高到哪里去了。