C++标准模板库STL 个人小总结vector

来源:互联网 发布:阿斯兰爆种 知乎 编辑:程序博客网 时间:2024/04/29 09:19

vector向量

本质:对数组的封装

特点:读取能在常数时间完成

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的


初始化vector对象的方式

1、vector<T>  v1;                vector保存类型为T的对象。默认构造函数v1为空                 

2、vector<T>  v2(v1);          v2是v1的一个副本

3、vector<T>  v3(n,i);          v3包含n个值为i的元素          

4、vector<T>  v4(n);            v4包含有值初始化元素的n个副本        


具体使用

vector<int> ivec1;//初始化了一个空的向量 vector<int> ivec2(ivec1);//用空的向量又去初始化了一个空的向量 vector<string> svec1; vector<string> svec2(ivec);vector<int> ivec4(10,-1);//用10个-1上的元素初始化了ivec4 vector<string> svec(10,"hi!");//是10个hi!这样的字符串初始化了svec

vector常用函数

empty()                             判断向量是否为空

begin()                              返回向量迭代器的首元素

end()                                 返回向量迭代器末元素的下一个元素

clear()                               清空向量

front()                                第一个数据

back()                               最后一个数据

size()                                获得向量中数据大小

push_back(elem)             将数据插入向量尾

pop_back()                       删除向量尾部数据

……                                 ……


举个例子

int main(){vector<int> vec;vec.push_back(10);vec.push_pop();//会将上面插入的10删掉 cout << vec.size() <<endl;return 0;}

遍历时可以像数组一样

for(int k=0 ;k<vec.size(); k++){cout<< vec[k] <<endl; }

迭代器:iterator

int main(){vector vec;vec.push_back("hello");vector<string>::iterator citer = vec.begin();for(;citer != vec.end();citer++ )//vec.end()代表向量迭代器末元素的下一个元素{cout<< *citer << endl;}return 0;}










原创粉丝点击