1.vector相量容器

vector相量容器

vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。

#include<vector> 
using namespace std;

vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[ ]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率

 

 

常用类函数成员:

clear()            //移除容器中所有数据。
 
erase(beg,end)     //删除[beg,end)区间的数据,返回值为删除区域后的第一个元素地址;
erase(pos)         // 删除该实参指针所对应的元素,返回值为删除区域后的第一个元素地址;

front()            //传回第一个数据。
 
insert(pos,elem)   //在pos位置插入一个elem拷贝
 
pop_back()         //删除最后一个数据。
 
push_back(elem)    //在尾部加入一个数据。
 
resize(num)        //重新设置该容器的大小
 
size()             //回容器中实际数据的个数。
 
begin()            //返回指向容器第一个元素的迭代器
 
end()              //返回指向容器最后一个元素的迭代器
 
at(pos)            //返回容器中第 pos 个元素的值

 

一维vector

  • 初始化问题
vector<int> numbers;//定义一个一维序列 
//默认初始化,vector为空,size为0,未开辟空间,可通过push_back()添加元素 

vector<int> numbers(5); 
//默认初始化,指定vector(初始)大小为5个int空间,元素初始值默认为0 

vector<int> numbers(5,2); 
//初始化numbers的长度为5,所有元素的值为2; 

vector<int> numbers={1,2,3,4,5}; 
//初始化时直接指定具体元素
  • 以拷贝的形式初始化
vector<int> numbers1={1,2,3,4,5};
vector<int> numbers2=numbers1;
//以拷贝的形式初始化,初始化后numbers2将于numbers1完全一样
vector<int> numbers2(numbers1);
//这两种初始化方式是完全等价的,都是拷贝形式的初始化
vector<int> numbers2(numbers1.begin(),numbers1.end());
//拷贝两个迭代器范围内的元素来进行初始化(并不要求迭代器一定是vector的,其他容器的也可以);
  • 数据类型不匹配问题:在初始化过程中如果出现数据类型不匹配的问题,如果“类型相容”(满足类型转换条件),就进行数据类型转换,否则......;
vector<int> numbers={1,2.0,3.0,4,5};
//在初始化过程中,2.0和3.0会被强制转化为整数;

 

二维vector

vector<vector<int>> numbers(10);//定义一个二维序列

事实上这个这个二维序列容器的意思是:定义了一个vector序列,而这个序列中的每一个元素都是“vector<int>”数据类型,而后面括号里的10的含义是先来10个这样的元素;

这样如果想在增加一行的话,可以:

vector<int> news;
numbers.push_back(news);

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值