C++编程/STL中vector类模板

  • 内容
  • 相关

      vector向量容器是标准库提供的基本序列式容器之一。它是一种支持高效的随机访问和高校向尾部插入新元素的容器。一般实现为一个动态分配的数组,向量中的元素连续地存放在这个数组中,因此对向量容器进行随机访问,具有和动态访问数组类似额效率。下面是一个例子,看如何去使用vector类模板:


#include <iostream>
#include <vector>
using namespace std;

template<class T>
void output(vector<T> vec)
{
	vector<T>::iterator iter;
	for(iter=vec.begin();iter!=vec.end();iter++)
		cout<<*iter<<" ";
	cout<<endl;
}

int main()
{
	vector<int>vec(5);//1.定义向量对象vec,元素类型为整数,元素个数为5
	//2.求向量中的元素个数n
	int n,i;
	n=vec.size();
	//3.显示向量中的元素,使用下标法访问
	for(i=0;i<n;i++)
		cout<<vec[i]<<" ";
	cout<<endl;

	vec.assign(n,10);//赋值
	for(i=0;i<n;i++)//使用at方法访问
		cout<<vec.at(i)<<" ";
	cout<<endl;

	for(i=0;i<n;i++)//用下标法修改它的值
		vec[i]=i*i;

	output(vec);//输出向量中的元素

	//使用迭代器修改
	vector<int>::iterator iter;
	for(iter=vec.begin(),i=1;iter!=vec.end();iter++,i++)
		*iter=i*i*i;

	output(vec);

	//从后面添加元素100
	vec.push_back(100);
	output(vec);

	//在第2个位置上添加一个元素81
	iter=vec.begin()+2;//定位
	vec.insert(iter,81);
	output(vec);

	//删除第4个元素
	iter=vec.begin()+4;
	vec.erase(iter);
	output(vec);

	vector<int> vec2(vec);
	cout<<"display vec2:";
	output(vec);

	return 0;
}
      注意在向量里面尽可能用迭代器去显示他,这样可以不用重新计算大小。上面这个程序介绍了三种向量的输出方式:1.下标法;2.at()方法;3.使用迭代器来输出向量中元素的信息。如:


for(i=0;i<n;i++)
cout<<vec[i]<<" ";
cout<<endl;


for(i=0;i<n;i++)
cout<<vec.at(i)<<" ";
cout<<endl;


//迭代器(类似于指针的使用)
vector<T>::iterator iter;
for(iter=vec.begin();iter!=vec.end();iter++)
cout<<*iter<<" ";
cout<<endl;

本文标签:

版权声明:若无特殊注明,本文皆为《尤尤》原创,转载请保留文章出处。

本文链接:C++编程/STL中vector类模板 - https://www.yxfseo.cn/post-29.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注