vector的总结

目录

1.什么是vector

2.vector的使用

2.1 vector构造函数

2.2 赋值运算符的重载

2.3 迭代器的使用

 正向迭代器使用

反向迭代器的使用

 vector容量函数

3.vector元素访问函数

3.1 operator[]

​编辑

3.2 at

3.3 front()

 3.4 back

4.vector增删查改

4.1 push back  尾插

4.2 pop  back  头插

4.3  assign()   替换函数

4.4 insert  插入元素

4.4.1. 插入单个元素:

4.4.2. 插入多个相同元素:

 4.4.3. 插入范围内的元素:

4.5  erase()  删除元素 

 4.5.1.移除单个元素:

4.5.2  移除一段元素

4.5 swap() 交换函数

4.6 clear 清空


    种一棵树最好的时间是10年前,其次是现在!加油学啊!

1.什么是vector

在C++中,std::vector是标准模板库(STL)中的一种动态数组容器,它可以存储任意类型的元素,并且能够自动调整大小。std::vector提供了许多方便的成员函数,使得对数组的操作更加简单和高效。 相当于数据结构中的顺序表

下面是一个使用std::vector的简单示例:三种遍历方法

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


void test_vector1()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);


	//数组下标
	for (size_t i = 0; i < v.size(); i++)
	{
		cout << v[i] << " ";
	}
	cout << endl;

	//范围for
	for (auto e : v)
	{
		cout << e << " ";
	}
	cout << endl;
	
	//迭代器
	vector<int>::iterator it = v.begin();
	while (it != v.end())
	{
		cout << *it << " ";
		it++;
	}
	cout << endl;
}


int main()
{
    test_vector1();

	return 0;
}

2.vector的使用

2.1 vector构造函数

explicit vector (const allocator_type& alloc = allocator_type());	
//构造一个空容器,不包含任何元素。
explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());
//构造一个包含n 个元素的容器。每个元素都是val的副本。	
template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());
//构造一个包含与范围[first,last)一样多的元素的容器,其中每个元素均从该范围内的相应元素按相同的顺序构造。
vector (const vector& x);//构造一个容器,其中包含x中每个元素的副本(按相同顺序)。

例子 

#include <iostream>
#include <vector>
using namespace std;
int main ()
{
  //构造函数的使用顺序与上述相同:
  vector<int> first;                                // 默认构造
  vector<int> second (4,100);                       // 初始化四个值为 100 的整数
  vector<int> third (second.begin(),second.end());  // 使用迭代器的拷贝
  vector<int> fourth (third);                       // 拷贝构造

  
  return 0;
}

2.2 赋值运算符的重载

vector& operator= (const vector& x);

该运算符重载函数使得两个 std::vector 对象的内容相同,但是它们是独立的,修改一个对象不会影响另一个对象。

std::vector<int> vec1 = {1, 2, 3, 4};
std::vector<int> vec2 = {5, 6, 7};

vec1 = vec2; // 将 vec2 的内容赋值给 vec1

在上面的示例中,vec1 的内容将变成 {5, 6, 7},与 vec2 相同。vec2 本身不受影响。

2.3 迭代器的使用

iterator begin():: 返回一个指向 std::vector 容器中第一个元素的可修改迭代器。通过这个迭代器,可以对容器中的元素进行修改。


const_iterator begin() const:: 返回一个指向 std::vector 容器中第一个元素的常量迭代器。通过这个迭代器,可以遍历容器中的元素,但不能对容器中的元素进行修改。

 正向迭代器使用
#include<iostream>
#include<vector>
using namespace std;


void test_vector1()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);

	vector<int>::iterator it = v.begin();
	while(it!=v.end())
	{
		cout << *it << " ";
		it++;
	}
	cout << endl;

}

int main()
{
	test_vector1();
}

reverse_iterator rbegin():: 返回一个指向 std::vector 容器中最后一个元素的可修改逆向迭代器。逆向迭代器是一种特殊的迭代器,它可以从容器的末尾向前遍历元素。


const_reverse_iterator rbegin() const:: 返回一个指向 std::vector 容器中最后一个元素的常量逆向迭代器。通过这个逆向迭代器,可以从容器的末尾向前遍历元素,但不能对容器中的元素进行修改

反向迭代器的使用
#include<iostream>
#include<vector>
using namespace std;


void test_vector1()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);

	vector<int>::reverse_iterator rit = v.rbegin();
	//auto rit =v.rbegin();    也可以这么写
	while(rit!=v.rend())
	{
		cout << *rit << " ";
		rit++;
	}
	cout << endl;

}

int main()
{
	test_vector1();
}
cbegin(): 返回指向 std::vector 容器中第一个元素的常量迭代器。
cend(): 返回指向 std::vector 容器中最后一个元素之后位置的常量迭代器。
crbegin(): 返回指向 std::vector 容器中最后一个元素的常量逆向迭代器。
crend(): 返回指向 std::vector 容器中第一个元素之前位置的常量逆向迭代器。
 vector容量函数
容量空间
接口说明
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值