vector向量容器的删除

本文探讨了C++中vector容器的erase()和clear()方法。erase()方法用于删除指定迭代器指向的元素或一段区间,而clear()方法一次性移除所有元素。在尝试使用clear()方法清空vector后,程序输出保持不变,引发了关于是否真正清空vector的疑问。
摘要由CSDN通过智能技术生成

erase()方法可以删除vector中迭代器所指的一个元素或一段区间中所有元素。

clear()方法则一次性删除vector中所有的元素。 

 

#include<vector>
#include<iostream>

using namespace std;

int main(int argc,char* argv[])
{
    vector<int> v(10);
	for(int i=0;i<10;i++)
	{
	    v[i]=i;
	}
 
	v.erase (v.begin ()+2);//删除第2个元素(迭代器中),从0计数。所以剩下013456789

	vector<int>::iterator it;

	for(it=v.begin ();it!=v.end ();it++)
	{
	    cout<<*it<<" ";
	}

	cout<<endl;
    
	v.erase (v.begin ()+1,v.begin ()+5);//删除迭代器中第1到第5区间内所有元素,所以只剩06789了。
	for(it=v.begin ();it!=v.end ();it++)
	{
	    cout<<*it<<" ";
	}
	cout<<endl;

	v.clear ();//全部删除了。

	/*for(it=v.begin (); it!=v.end ();it++)
	{
	    cout<<*it<<" ";
	}*/

	cout<<v.size ()<<endl;
	return 0;


}


运行结果:

有一点不理解,当我把最后那部分(注释掉的)加上之后,即v.clear ()之后的输出,想看看清空之后会输出什么,结果还是

,不理解为什么。难道是清空后就不输出吗???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值