vector的begin的基本操作

本文详细介绍了C++中vector容器的使用方法,包括如何创建、添加元素及通过迭代器遍历vector。同时,对比了普通迭代器与常量迭代器的区别,展示了普通迭代器能够修改vector内元素的特性。

#include <vector>
#include <iostream>

int main()
{
	using namespace std;
	vector<int> c1;					//创建一个vector对象c1
	vector<int>::iterator c1_Iter;  //初始化一个迭代器对象
	vector<int>::const_iterator c1_cIter; //初始化一个常量迭代器对象

	c1.push_back(1);				//添加两个元素1.2
	c1.push_back(2);

	cout << "The vector c1 contains elements:";
	c1_Iter = c1.begin();			//将第一个元素的地址,赋值给迭代器

	for (; c1_Iter != c1.end(); c1_Iter++)
	{
		cout << " " << *c1_Iter;
	}
	cout << endl;

	cout << "The vector c1 now contains elements:";
	c1_Iter = c1.begin();		
	*c1_Iter = 20;				//第一个迭代器,解运算符改变了begin地址的值
	for (; c1_Iter != c1.end(); c1_Iter++)
	{
		cout << " " << *c1_Iter;
	}
	cout << endl;

}

常量迭代器无法改变vector里面的值,而普通的迭代器可以。

### 添加元素 在C++中,`vector`容器提供了多种方法来添加元素。最常用的方法包括`push_back()`和`emplace_back()`,它们都可以在`vector`的末尾添加新的元素。`push_back()`接受一个值作为参数,并将其复制或移动到`vector`的末尾。而`emplace_back()`则接受构造元素所需的参数,并在`vector`的末尾原地构造元素,避免了额外的拷贝或移动操作[^5]。 ```cpp #include <vector> using namespace std; vector<int> v; v.push_back(10); // 在v的末尾添加一个值为10的元素 v.emplace_back(20); // 在v的末尾直接构造一个值为20的元素 ``` ### 删除元素 对于删除元素的操作,`vector`提供了`pop_back()`、`erase()`和`clear()`等方法。`pop_back()`用于删除`vector`的最后一个元素。`erase()`可以删除指定位置的元素或者一个范围内的元素。`clear()`会删除`vector`中的所有元素,但不会释放内存[^5]。 ```cpp v.pop_back(); // 删除最后一个元素 v.erase(v.begin()); // 删除第一个元素 v.erase(v.begin(), v.end()); // 删除所有元素 v.clear(); // 清空容器 ``` ### 访问元素 访问`vector`中的元素可以通过索引操作符`[]`、`at()`成员函数、`front()`和`back()`成员函数以及`data()`成员函数。索引操作符`[]`和`at()`都可以通过索引访问元素,不同的是`at()`会在索引越界时抛出异常。`front()`和`back()`分别返回第一个和最后一个元素的引用。`data()`返回指向`vector`中第一个元素的指针[^3]。 ```cpp int firstElement = v.front(); // 获取第一个元素 int lastElement = v.back(); // 获取最后一个元素 int* elements = v.data(); // 获取指向第一个元素的指针 ``` ### 修改元素 修改`vector`中的元素可以直接通过索引操作符`[]`或`at()`成员函数来完成。此外,也可以使用迭代器来遍历并修改元素的值。 ```cpp v[0] = 100; // 使用索引操作符修改第一个元素 v.at(1) = 200; // 使用at()成员函数修改第二个元素 // 使用迭代器修改所有元素 for (auto it = v.begin(); it != v.end(); ++it) { *it *= 2; // 每个元素乘以2 } ``` ### 查询元素 查询`vector`中的元素通常涉及查找特定的值或满足某些条件的元素。虽然`vector`本身没有提供直接的查找方法,但是可以使用标准库中的算法如`find()`来实现这一功能。 ```cpp #include <algorithm> // 需要包含此头文件以使用std::find // 查找值为100的元素的位置 auto it = find(v.begin(), v.end(), 100); if (it != v.end()) { // 找到了元素 } else { // 没有找到元素 } ``` 以上就是关于C++中`vector`容器的一些基本操作指南。这些操作涵盖了向`vector`中添加元素、从`vector`中删除元素、访问`vector`中的元素、修改`vector`中的元素以及查询`vector`中的特定元素。掌握这些基本操作对于有效地使用`vector`容器至关重要。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值