vector

2023-05-16

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

//容器: vector ,相当于一个数组

//迭代器: vector<int>::iterator


void show(vector<int> &v)
{
	vector<int>::iterator itstart = v.begin();
	vector<int>::iterator itend = v.end();
	//遍历
	/*while (itstart != itend)
	{
		cout << *itstart << endl;
		itstart++;
	}*/

	for (vector<int>::iterator i = itstart; i != itend; i++)
	{
		cout << *i << " ";
	}
	cout << endl;
}

int main(void)
{
	cout << "vector构造函数" << endl;
	vector<int> v1;       //默认构造函数
	vector<int> v2(6,6);  //vector(n, elem);构造函数将n个elem拷贝给本身
	vector<int> v3(v2);   //或vector<int> v3(v2.begin(),v2.end());vector(v.begin(), v.end());将v[begin(), end())区间中的元素拷贝给本身
	show(v2); show(v3); cout << endl;

	cout << "赋值(重载=号,函数assign)" << endl;
	v1 = v2;            //或v1.operator=(v2);vector& operator=(const vector &vec);
	show(v1); show(v2);
	v2.assign(6, 5);     //assign(n, elem);
	v1.assign(v2.begin(), v2.end());   
	show(v1); show(v2); cout << endl;

	cout << "获取容量和大小" << endl;
	cout << v1.empty() <<endl;//判断是否为空,返回0,不为空。
	cout << v1.capacity() << endl; //容器的容量
	cout << v1.size() << endl;     //返回容器中元素的个数
	v1.resize(10,6);			   //容器变长,第二个参数填充新位置
	show(v1);                      //resize(int num, elem);
	v1.resize(5);                  //容器变短,超出容器长度的元素被删除
	show(v1); cout << endl;        //resize(int num);若容器变长,以默认值0填充新位置

	cout << "插入和删除" << endl;
	v2.push_back(6);  //尾部插入元素
	show(v2);
	v2.pop_back();   //删除最后一个元素
	show(v2);
	v2.insert(v2.begin()+3,3,6);  //insert(const_iterator pos, int count,ele);迭代器指向位置pos插入count个元素ele
	show(v2);
	v2.erase(v2.begin()+4);       //删除迭代器指向的元素
	show(v2);
	v2.erase(v2.begin()+3,v2.begin()+5); //删除迭代器从start到end之间的元素
	show(v2);
	v2.clear();                 //删除容器中所有元素
	cout << v2.size() << endl << endl;   

	cout << "数据读取" << endl;
	for (int i = 0; i < 6; i++)
	{
		v2.push_back(i+1);
	}
	show(v2);
	cout << v2.at(2) << endl; //at(int idx); 返回索引idx所指的数据,idx从0算起
	cout << v2[2] << endl;    //中括号重载
	cout << v2.front() << endl;    //返回容器中第一个数据元素
	cout << v2.back() << endl << endl;     //返回容器中最后一个数据元素

	//预留空间
	v2.reserve(10);  //容器预留len个元素长度,预留位置不初始化,元素不可访问
	cout << v2.capacity() << endl;
	show(v2);

	system("pause");
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vector 的相关文章

随机推荐