STL之vector基本使用实例

版权声明:本文为博主原创文章,转载需标明出处。 https://blog.csdn.net/My_heart_/article/details/64906885

最近复习STL,对于vector的一些功能知道,但是就忘记了函数名是啥了,这就很尴尬,所以把经常使用的方法都用了,也方便以后回顾。


vector基本方法-->看图:



test_code:


void test_vector()
{
	vector<int> vec;
	vec.push_back(1);  //尾插
	vec.push_back(3);
	vec.push_back(5);
	vec.push_back(7);
	cout << "begin() , end() 测试 :" << endl;  //返回的是迭代器
	cout << *(vec.begin() ) << endl;
	//结果 :  begin返回指向容器第一个元素的迭代器,end返回指向容器最后一个元素后面位置的迭代器

	cout << "size() , max_size()   capacity()  empty()   测试 :" << endl;
	cout << vec.size() << endl;
	cout << vec.max_size() << endl; //max_size最大的可能的元素个数
	cout << vec.capacity() << endl;
	cout << vec.empty() << endl;


	cout << "resize() , reserve() 测试 :" << endl;
	vec.resize(20);   //设置size的大小
	cout << vec.size() << endl;  
	cout << vec.capacity() << endl;

	vec.reserve(30);  //设置capacity的大小
	cout << vec.size() << endl;
	cout << vec.capacity() << endl;

	cout << " empty() , [] ,  = 测试 :" << endl;
	cout << vec.empty() << endl;
	cout << vec[0] << endl;
	vec[0] = 0;
	cout << vec[0] << endl;

	cout << " iterator  , erase测试 :" << endl;
	vector<int>::iterator it = vec.begin();
	for (; it != vec.end(); ++it)
		cout << *it << " ";

	//for (it = vec.begin(); it != vec.end(); ++it)
	//{
	//	vec.erase(it);  //迭代器失效!!
	//}
	//下面是正确的使用:
	for (it = vec.begin(); it != vec.end();)
	{
		it = vec.erase(it);   
	}

	cout << "insert() , clear() 测试:"<<endl;
	vec.push_back(1);
	vec.push_back(3);
	vec.push_back(5);
	vec.push_back(7);
	it = vec.begin();

	vec.insert(it, 0);  //在it指向位置 前插
	for (; it != vec.end(); ++it)
		cout << *it << " ";
	cout << endl;
	cout << vec.size() << endl;;

	vec.clear();  //清除数据
	cout<<vec.size() << endl;
	cout << vec.capacity() << endl;

	cout << "front() , back() , at() 的测试:" << endl;
	vec.push_back(1);
	vec.push_back(3);
	vec.push_back(5);
	vec.push_back(7);
	cout << vec.front() << "~~" << vec.back() << endl;
	for (size_t i = 0; i < vec.size(); ++i)
		vec.at(i) = i*i;
	for (size_t i = 0; i < vec.size(); ++i)
		cout<<vec.at(i) << endl;
        vec.pop_back(); // 尾删
	vec.pop_back(); // 尾删
	vec.pop_back(); // 尾删
	vec.pop_back(); // 尾删
}



猜你喜欢

转载自blog.csdn.net/My_heart_/article/details/64906885