c++vector

vector容器基本概念(转载)
vector的数据安排以及操作方式,与array非常相似,两者的唯一差别在于空间的运用的灵活性。

Array是静态空间,一旦配置了就不能改变,要换大一点或者小一点的空间,可以,一切琐碎得由自己来,首先配置一块新的空间,然后将旧空间的数据搬往新空间,再释放原来的空间。

Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。因此vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,我们再也不必害怕空间不足而一开始就要求一个大块头的array了。

Vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移动效率,一旦vector旧空间满了,如果客户每新增一个元素,vector内部只是扩充一个元素的空间,实为不智,因为所谓的扩充空间(不论多大),一如刚所说,是”配置新空间-数据移动-释放旧空间”的大工程,时间成本很高,应该加入某种未雨绸缪的考虑。
原文链接:https://blog.csdn.net/qq_42322103/article/details/99685797

vector<int> c        //定义一个vector容器
c.clear()            //移除容器中所有数据。
c.empty()            //判断容器是否为空。
c.erase(pos)         //删除pos位置的数据
c.erase(beg,end)     //删除[beg,end)区间的数据
c.front()            //传回第一个数据。
c.insert(pos,elem)   //在pos位置插入一个elem拷贝
c.pop_back()         //删除最后一个数据。
c.push_back(elem)    //在尾部加入一个数据。
c.resize(num)        //重新设置该容器的大小
c.size()             //回容器中实际数据的个数。
c.begin()            //返回指向容器第一个元素的迭代器
c.end()              //返回指向容器最后一个元素的迭代器
c.clear()            //清空容器
reverse(v.begin()+x-1,v.begin()+y)//翻转第x个到第y个数

访问 vector 的方法有两种:
方法一:直接访问
方法二:迭代器访问 

(1)使用样例

int main() {   //顺序访问
	vector<int>v;
	for (int i = 0; i < 10; i++)
		v.push_back(i);
	cout << "直接利用下标:";
	for (int i = 0; i < v.size(); i++)//方法一
		cout << v[i] << " ";
	cout << endl;
	cout << "利用迭代器:"; //声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素
	vector<int>::iterator it;
	for(it = v.begin(); it != v.end(); it++)
		cout << *it << " ";
	return 0;
}

(2)结构

vector<int>::iterator  it;     //int 为vector类型,it为迭代器名称(可改变)
for(it=v.begin();it!=v.end();it++) {  //v.begin()为vector起始元素,v.end()为vector末尾元素  
    cout<<*it<<"  ";        //输出it地址的元素  
}//it!=v.end()表示不指向末尾元素   因为地址连续,it++表示下一个元素地址。  vector的迭代器类型支持随机访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值