#include2.容器自带函数#include using namespace std; int main(){ vector a;//直接读入一个名为a的vector vector a(10);//读入一个长为10的名为a的vector vector a(10, 2);//读入一个长为10的,每个数都为2的名为a的vector vector a[10];//读入10个vector }
部分函数如下:
#include3、迭代器#include using namespace std; int main(){ vector a;//直接读入一个名为a的vector a.size();//a的元素个数,O(1) a.empty();//a是否为空,是返回true,否返回false,O(1) a.clear();//清空(队列没有) a.front();//返回首位元素 a.back();//返回末位元素 a.push_back();//在末尾插入新数 a.pop_back();//删掉末位元素 a.begin();//迭代器首位 a.end();//迭代器末位的下一位 }
迭代器it可视为指针,*it为地址为it的数值,利用迭代器遍历一个vector方法如下:
#include4.C++11的新特性auto#include using namespace std; int main() { vector a;//直接读入一个名为a的vector for (int i = 0; i < 10; i++) a.push_back(i); vector ::iterator it;//迭代器 for (it = a.begin(); it != a.end(); it++) cout << *it << " "; cout << endl; return 0; }
auto可以自动识别变量的类型,适合类型很长的变量(如迭代器)的声明,还可用于for循环遍历,格式为for(auto x: a),代码如下:
#include5.其他#include using namespace std; int main() { vector a;//直接读入一个名为a的vector for (int i = 0; i < 10; i++) a.push_back(i); for (auto it = a.begin(); it != a.end(); it++) cout << *it << " "; cout << endl; for(auto x : a) cout << x << " "; cout << endl; return 0; }
系统为某一程序分配空间时,所需时间与空间大小无关,而与申请次数有关。
举个例子,你申请一个长度为1的vector和长度为100的vector所用时间是一样的,而你申请1000遍长度为1的vector时间是申请一次长度为1000的vector的时间的1000倍!
所以,我们要尽量减少申请vector的次数!
同时,vector还可以比较大小,按照的是字典序。



