vector
特点:
1.可变长的动态数组
2.使用时包含头文件 #include
3.支持随机访问迭代器
• 根据下标随机访问某个元素时间为常数
• 在尾部添加速度很快
• 在中间插入慢
成员函数
初始化
[cpp] view plaincopy 01.vector(); 初始化成空 02.vector(int n); 初始化成有n个元素 03.vector(int n, const T & val); 初始化成有n个元素, 每个元素的值都是val,类型是T 04.vector(iterator first, iterator last); 初始化为与别的容器上区间[first, last)一致的内容
举例:
1.创建一个int类型的空的vector对象:
vectorintvec;
2.创建一个包含5个int类型数据的vector:
vectorintvec(5);
3.创建一个包含5个int类型数据的vector,并且都初始化为2:
vector
4.通过复制某vec容器来创建
vector
元素的访问
intvec.at(index)
返回由index指定的位置上的元素
intvec[index]
返回由index指定的位置上的元素
举例:
[cpp] view plaincopy 01.include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10); 07. for (int i = 0;i != vec.size();i++) 08. { 09. vec.at(i) = i; 10. //vec[i] = i ; 11. } 12. 13. for (int i = 0;i != vec.size();i++) 14. { 15. cout << vec.at(i)< 容器的大小
表达式
作用
intvec.capacity()返回不重新分配空间可以插入到容器intvec中的元素的最大个数
intvec.empty()容器intvec为空,返回true;否则,返回false
Intvec.size()返回容器intvec中当前的个数
intvec.resize(num)将元素个数改为num。如果size()增加,默认的构造函数负责创建这些新元素
intvec.resize(num, elem)将元素个数改为num。如果size()增加,默认的构造函数将这些新元素初始化为elem
举例:
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec1; 07. cout << vec1.empty()< vec2(20); 11. cout << vec2.empty()< vec3(15,1); 15. cout << vec3.capacity()< 容器的操作
语句
作用 intvec.clear()从容器中删除所有元素
intvec.erase(position)删除由position指定的位置上的元素
intvec.erase(beg,end)删除从beg到end-1之间的所有元素
intvec.insert(position, elem)将elem的一个拷贝插入到由position指定的位置上,并返回新元素的位置
intvec.inser(position, n, elem)将elem的n个拷贝插入到由 position指定的位置上
intvec.insert(position, beg, end)将从beg到end-1之间的所有元素的拷贝插入到intvec中由position指定的位置上
intvec.push_back(elem)将elem的一个拷贝插入到vector的末尾
intvec.pop_back()删除最后元素
intvec.front()返回第一个元素的引用,不检查容器是否为空
Intvec.back()返回最后一个元素的引用,不检查容器是否为空
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. cout< vec1(1,1); 12. vec1.insert(vec1.begin()+1,2); //在该位置插入,把原来该位置以其以后的元素整体后移 13. for(int i = 0;i != vec1.size();i++) 14. cout< 02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. vec.push_back(2);//12 08. 09. cout< 二维数组
vector< vector> v(3); //v有3个元素,
//每个元素都是vector容器 [cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() { 05. vector< vector > v(3); 06. for(int i=0; i 输出:
0 1 2 3
0 1 2 3
0 1 2 3
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64127.html
摘要:更加实际的定义应该是一个集合是一个容器,它其中所包含的元素的值是唯一的。对而言,键只是指存储在容器中的某一成员。成员函数构造函数中的元素都是模板类对象。元素按照成员变量从小到大排列,缺省情况下用定义关键字的小于关系。 分类:set, multiset, map, multimap 特点:内部元素有序排列,新元素插入的位置取决于它的值,查找速度快。 常用函数: find: 查找等于...
摘要:拷贝构造函数示例构造无参构造函数总结容器和容器的构造方式几乎一致,灵活使用即可赋值操作功能描述给容器进行赋值函数原型重载等号操作符将区间中的数据拷贝赋值给本身。清空容器的所有数据删除区间的数据,返回下一个数据的位置。 ...
摘要:如果增加,默认的构造函数将这些新元素初始化为队列当前的元素个数交换两个队列两个重载和小结向量容器,使用线性存储结构,可以像数组一样随机下标访问元素,还可以在尾部插入元素用函数。 deque 特点: 1.双向队列 2.使用时包含头文件 #include 3.deque容器与vector类似,用动态数组来管理元素,支持随机访问。 4.与vector不同的是deque的动态数组首尾...
阅读 2456·2021-11-23 09:51
阅读 507·2019-08-30 13:59
阅读 1825·2019-08-29 11:20
阅读 2533·2019-08-26 13:41
阅读 3241·2019-08-26 12:16
阅读 731·2019-08-26 10:59
阅读 3323·2019-08-26 10:14
阅读 603·2019-08-23 17:21