vector

#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;
}

05-29
C++ 中,vector 是一个动态数组容器,可以存储任意类型的数据。使用 vector 可以方便地进行动态内存分配和管理,而不需要手动进行内存分配和释放。 vector 提供了一系列的成员函数,可以方便地进行元素的插入、删除、查找和访问等操作。以下是一些常用的操作: 1. 创建 vector 对象: ```c++ #include <vector> std::vector<int> vec; // 创建一个空的 vector std::vector<int> vec1(10); // 创建一个包含 10 个默认值的 vector std::vector<int> vec2(10, 0); // 创建一个包含 10 个值为 0 的 vector std::vector<int> vec3 = {1, 2, 3, 4}; // 创建一个包含 4 个元素的 vector,初始值为 1, 2, 3, 4 std::vector<int> vec4(vec3); // 创建一个与 vec3 完全相同的新 vector ``` 2. 访问 vector 中的元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec[0] << std::endl; // 访问第一个元素,输出 1 std::cout << vec.at(2) << std::endl; // 访问第三个元素,输出 3 std::cout << vec.front() << std::endl; // 访问第一个元素,输出 1 std::cout << vec.back() << std::endl; // 访问最后一个元素,输出 4 ``` 3. 插入和删除元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; vec.push_back(5); // 在末尾插入元素 5 vec.insert(vec.begin() + 2, 10); // 在第三个位置插入元素 10 vec.erase(vec.begin() + 1); // 删除第二个元素 ``` 4. 获取 vector 中的信息: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec.size() << std::endl; // 输出 vector 的大小,即元素个数,输出 4 std::cout << vec.empty() << std::endl; // 判断 vector 是否为空,输出 0(因为不为空) ``` vector 还提供了一些其他的函数,如排序、反转、查找等,具体可以参考 C++ 标准库的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值