容器vector

//容器vector,可以单方向扩展
//扩展的速度是以二倍的速度扩展
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> v;//定义一个空vector
    vector<int> v1(4);//定义一个大小为4的vector,初始值为0
    vector<int> v2(4,6);//定义一个大小为4的vector,初始值为6
    vector<int> v3{1,2,3,4,5};//定义一个vector,并初始化
    for(auto x:v3)
    cout<<x;
    cout<<endl;
    cout<<v3[1];//获取元素的两种方式
    cout<<v3.at(2);
    return 0;
 } 
//容器vector的一些基本操作
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(4);//在vector后追加数字
    for(auto x:v)
    cout<<x;
    cout<<endl;
    v.resize(10);//重置大小,不赋值的话默认追加0
    v[9]=8;
    v.erase(v.begin());//删除元素,复杂度为O(n)
    v.erase(--v.end());
    for(auto x:v)
    cout<<x;
    cout<<endl;
    cout<<v.front();//输出第一个元素
    cout<<v.back()<<endl;//输出最后一个元素
    cout<<v.size();//输出vector的大小(包含几个元素)
 } 

原文地址:https://www.cnblogs.com/zmachine/p/12273694.html

时间: 2024-10-08 13:21:28

容器vector的相关文章

C/C++中容器vector使用方法&lt;第二弹&gt;

此文总结常用vector操作,是前一篇的续作!只有代码,详细请看代码中的注释.出于反爬虫的目的,你不是在http://blog.csdn.net/zhanh1218上看到的,肯定不是最新最全的. /********************************************************************* * file_name: vector_test.cpp * * Created on: 2014年6月28日 下午3:34:23 * Author: The_T

C/C++中容器vector使用方法

C++中数组很坑,有没有类似Python中list的数据类型呢?类似的就是vector!vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和 string 对象一样,标准库将负责管理与存储元素相关的内存.我们把 vector 称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. vector对象的定义和初始化 同样的,使用前,导入头文件#include <vector> 可以使用using声明:using std::vector; vector

STL标准库-容器-vector

摘要: 技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性. 我对向量容器vector的理解就是一个动态数组,内存连续,它是动态分配内存,且每次扩张的原来的二倍. 他的结构如下 一 定义 vector< 类型 > 标识符(最大容量,初始所有值) vector是一种类模板,那么他有很多行为与类相似 头文件 #include <vector> //a.定义 vector<typeName> v; vector<int> v; //b.拷贝构造

C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用

序列性容器::(vector和list和deque) erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被 删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方 式,但是erase的返回值为下一个有效的迭代器,所以   正确方法为:: for( iter = c.begin(); iter != c.end(); ) iter = c.erase(iter); 关联性容器::(map和set比较常用) erase迭代器只是被删元素的迭代器失效,但是返回值为void, 所

C++线性序列容器&lt;vector&gt;简单总结

C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除元素,比数组操作高效. 头文件:#include <vector> 命名空间:using namespace std:vector 构造函数 vector<int>vec_int;         // 创建一个整形元素的vector vector<string>vec_s

STL容器 vector,list,deque 性能比较

C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑.在少量数据操作的程序中随便哪一种用起来感觉差别并不是很大,但是当数据达到一定数量后,会明显感觉性能上有很大差异. 本文就试图从介绍,以及性能比较两个方面来讨论这个问题. vector - 会自动增长的数组 list - 擅长插入删除的链表 deque - 拥有vector和list两者优点的双端队列 性能竞技场 性能总结与使用建议 测试程序清

C++ 顺序容器(vector,list、deque,stack,queue)

顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管理级的优先队列 1.头文件 #include <vector> #include <list> #include <deque> //每一种头文件对应一种顺序容器 #include <queue> //队列 优先队列的头文件 #include <stack

SGI-STL简记(六)-序列容器(vector)

stl_vector.h : vector:可随机访问元素的序列容器,从后插入或删除在常量时间内完成,从首部或中间则需线性时间内完成: _Vector_alloc_base:vector分配基类模板:模板参数分别为数据类型T,分配器类型_Allocator,以及一个bool标识_IsStatic(用于区分是否为标准分配器或SGI分配器); 数据成员: _M_data_allocator:分配器对象; _M_start:保存申请的缓冲区首地址(等同于容器元素的首地址): _M_finish:保存容

C++顺序容器vector、deque、list

1.容器元素类型 C++中大多数数据类型能够作为容器的元素类型.容器元素类型必须满足一下两个条件:支持赋值和复制操作. 所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的元素类型. 2.vector容器的自增长 vector容器中存储的元素在内存中是连续存储的.假如容器中没有空间容纳新元素.此时因为元素必须连续存储以便索引訪问,所以不能在内存中随便找个地方存储这个新的元素,于是vector必须又一次分配空间.用于存放原来的元素和新加入的元素:存放在旧容器中的元素被拷