c++中vector的使用

vector介绍

vector是向量类型,vector是c++中的一个泛型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件

#include<vector>;

vector的使用

1.vector的初始化

vector有五种初始化方法
vector<T> v1;//创建一个类型为T的空vector
vector<T> v2(v1);//v2包含v1所有元素的副本
vector<T> v2=v1;//与上面等价
vector<T> v3(n,val);//包含n个值为val的元素
vector<T> v4(n);//包含n个元素,如果T为int默认为0
vector<T> v5={a,b,c,d...};//每个被赋予相应的值

2.vector容器包含的成员函数

函数成员函数功能
begin()返回指向容器中第一个元素的迭代器。
end()返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。
rbegin()返回指向最后一个元素的迭代器。
rend()返回指向第一个元素所在位置前一个位置的迭代器。
cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
size()返回实际元素个数。
max_size()返回元素个数的最大值。这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数。
resize()改变实际元素的个数。
capacity()返回当前容量。
empty()判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
reserve()增加容器的容量。
shrink _to_fit()将内存减少到等于当前元素实际所使用的大小。
operator[ ]重载了 [ ] 运算符,可以向访问数组中元素那样,通过下标即可访问甚至修改 vector 容器中的元素。
at()使用经过边界检查的索引访问元素。
front()返回第一个元素的引用。
back()返回最后一个元素的引用。
data()返回指向容器中第一个元素的指针。
assign()用新元素替换原有内容。
push_back()在序列的尾部添加一个元素。
pop_back()移出序列尾部的元素。
insert()在指定的位置插入一个或多个元素。
erase()移出一个元素或一段元素。
clear()移出所有的元素,容器大小变为 0。
swap()交换两个容器的所有元素。
emplace()在指定的位置直接生成一个元素。
emplace_back()在序列尾部生成一个元素。

3.vector遍历

  1. 使用下标方式遍历
    可以使用[]操作符访问vector中的元素
// An highlighted block
vector<int> v(10,1);
for(int i=0;i<v.size();i++){
	cout<<v[i]<<endl;
}

使用下标访问注意下标不能超过vector的大小,否则会发生越界访问的错误。好在vector 容器提供了 at() 成员函数,当传给 at() 的索引会造成越界时,会抛出std::out_of_range异常。

  • 通过迭代器访问元素
vector<int> v(10,1);
for (auto i = v.begin(); i < v.end(); i++) {
        cout << *i << " ";
    }

3.vector元素插入

使用push_back()可以向vector末尾插入元素。如果需要指定位置插入,可以使用insert函数,函数具体用法如下:

语法格式用法说明
iterator insert(pos,elem)在迭代器 pos 指定的位置之前插入一个新元素elem,并返回表示新插入元素位置的迭代器。
iterator insert(pos,n,elem)在迭代器 pos 指定的位置之前插入 n 个元素 elem,并返回表示第一个新插入元素位置的迭代器。
iterator insert(pos,first,last)在迭代器 pos 指定的位置之前,插入其他容器(不仅限于vector)中位于 [first,last) 区域的所有元素,并返回表示第一个新插入元素位置的迭代器。
iterator insert(pos,initlist)在迭代器 pos 指定的位置之前,插入初始化列表(用大括号{}括起来的多个元素,中间有逗号隔开)中所有的元素,并返回表示第一个新插入元素位置的迭代器。

4.vector元素删除

  • iterator erase(iterator it):删除向量中迭代器指向元素
  • iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
  • void pop_back():删除向量中最后一个元素
  • void clear():清空向量中所有元素
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++,`vector`是一种动态数组,可以存储任意类型的数据。它提供了方便的插入、删除和查找操作,以及自动管理内存的功能。下面是使用`vector`的一些基本步骤: 1. 包含头文件:在使用`vector`之前,需要包含`<vector>`头文件。 ```cpp #include <vector> ``` 2. 声明变量:创建一个`vector`对象,指定其大小。 ```cpp std::vector<int> myVector(10); // 创建一个大小为10的整数vector ``` 或者 ```cpp std::vector<std::string> myVector; // 创建一个空的字符串vector ``` 3. 插入元素:使用`push_back()`函数向`vector`添加元素。可以使用循环语句插入多个元素。 ```cpp myVector.push_back(1); // 向vector添加一个元素 myVector.push_back(2); // 再添加一个元素 // ... ``` 4. 访问元素:使用索引访问`vector`的元素。可以使用下标运算符`[]`或`.at()`函数来访问元素。 ```cpp int firstElement = myVector; // 访问第一个元素 std::string secondElement = myVector.at(1); // 访问第二个元素(注意:如果索引超出范围,会触发异常) ``` 5. 修改元素:可以使用赋值运算符修改`vector`的元素。 ```cpp myVector = 3; // 修改第一个元素为3 ``` 6. 删除元素:使用`erase()`函数删除`vector`的元素。可以使用循环语句删除多个元素。 ```cpp myVector.erase(myVector.begin() + 1); // 删除第二个元素(注意:要确保索引不超出范围) ``` 7. 迭代器遍历:可以使用迭代器遍历`vector`的元素。 ```cpp std::vector<int>::iterator it; for (it = myVector.begin(); it != myVector.end(); ++it) { std::cout << *it << std::endl; // 输出每个元素的值 } ``` 8. 大小和容量:可以使用成员函数`size()`和`capacity()`来获取`vector`的大小和容量。还可以使用成员函数`reserve()`来预先分配足够的内存空间。 这些是使用C++的`vector`的基本步骤。通过这些操作,可以方便地管理动态数组,并在程序灵活使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值