C++之数据类型,容器
容器类型:
vector //其实就是常规数组(适合随机访问元素,但在头部和尾部插入元素开销大)
list //适合在头部和尾部插入元素,但随机访问元素开销大,必须遍历所有,比如list<string> abc(3,"a");abc[0]就不行,vector就可以(详见c++primer 9.5容器的选用)
map
vector:
定义和常规使用
vector<int> box(2,5); //定义大小为2,内容为5的vector for (int i = 0; i < box.size(); i++) { cout<<box[i]<<endl; //output: 5 5 }
定义和迭代器使用
vector<int> box(2,5); for(vector<int>::iterator iter=box.begin() ; iter!=box.end() ; ++iter) //定义迭代器iter并赋初始值为box.begin,每次判断是否指向最后一个数
{ *iter = 1;
cout<<*iter<<endl; //output : 1 1
}
关于vector、list容器的更多操作详见c++primer 第九章
map:
map<int,string> m; //定义 m[0] = "000"; m[1] = "111"; m[2] = "222"; map<int,string>::iterator map_iter = m.begin(); while(map_iter != m.end()){ cout<<map_iter->first<<" "<<map_iter->second<<endl; //分别输出key和value map_iter++; }