STL之vector

简介: STL之vector

vector相当于一个动态数组,可以对其进行插入、增加等操作,使用vector容器,可以避免再去使用C类型的动态数组。

其初等层次的学习可以围绕在其相关的函数展开。


1.初始化


其初始化有多种方式,见下代码和注释:


#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef  int Type; 
int main()
{   vector<Type>a;//默认初始化Type类型名为a的动态数组 ,为空。 
  vector<Type>b(10,5);// 初始化Type类型名为b大小为10,初始值为5的动态数组 
  vector<Type>c=b;
  vector<Type>d(c);//创建拷贝
  vector<Type>e={1,2,3,4};//列表初始化,!!!但实际上我的Dev-C++编译不通过,不知道原因。 
  return 0;


2.增减插删


实际中,常常是创建一个vector对象后再对其进行增减插删等操作,主要依靠以下几个函数。

1.push_back(elem)

将数据添加到尾部。对于一个空的vector,不能使用下标向其中添加元素。只能使用push_back,只能对确知已存在的元素执行下标操作

2.pop_back()

将vector中尾部数据删除。

3.insert(a,elem)

在a位置前插入数据。

4.erase(a)

删除a位置上的元素,若是erase(a,b),则删除位置处于[a,b)上的元素。

5.clear()

全清。


3.访问


1.下标访问

注意只能对确知已存在的元素执行下标操作。

2.迭代器访问

可以类比于指针,设s为vector对象,s.begin()表示首地址,s.end()表示末地址,迭代器定义为vector::iterator p;

下为结合增删访问的例子:

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
int main()
{   
  vector<string>s;
  s.push_back("hello");
  s.push_back("  ");
  s.push_back("world");
  s.push_back("a");
  for(int i=0;i<4;i++)//下标访问 
  cout<<s[i];
  cout<<endl; 
  s.insert(s.begin()+3,"!");
  s.pop_back();
  vector<string>::iterator it;
  for(it=s.begin();it!=s.end();it++)//迭代器访问 
  cout<<*it;
  return 0;
}


结果:

1685009292210.jpg


4.延伸


1.二维数组的定义

vector<int*>a或vector<vector > a; //定义一个二维数组
a[0].size(); //指第一行的列数

至于输入就应该一行行即一个一维数组输入。

2.与sort,reverse这些算法可以结合

sort前面已经提及,reverse(a,b)是指将[a,b)上的元素翻转。

相关文章
|
23天前
|
存储 编译器 C语言
【c++丨STL】vector的使用
本文介绍了C++ STL中的`vector`容器,包括其基本概念、主要接口及其使用方法。`vector`是一种动态数组,能够根据需要自动调整大小,提供了丰富的操作接口,如增删查改等。文章详细解释了`vector`的构造函数、赋值运算符、容量接口、迭代器接口、元素访问接口以及一些常用的增删操作函数。最后,还展示了如何使用`vector`创建字符串数组,体现了`vector`在实际编程中的灵活性和实用性。
48 4
|
7月前
|
存储 C++ 索引
C++:STL - vector
C++:STL - vector
83 1
|
7月前
|
算法 Java 容器
STL_vector
STL_vector
52 0
|
存储 C++ 容器
【C++】STL之vector操作
【C++】STL之vector操作
|
存储 算法 编译器
【剖析STL】vector
vector的介绍及使用 1.1 vector的介绍 cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器。
46 0
|
存储 Linux C++
C++【STL】之vector的使用
C++ STL vector类常用接口详细讲解,干货满满!
123 0
C++【STL】之vector的使用
|
小程序 C++ 容器
C++ STL学习之【vector的使用】
vector 是表示可变大小数组的序列 容器,其使用的是一块 连续 的空间,因为是动态增长的数组,所以 vector 在空间不够时会扩容;vector 优点之一是支持 下标的随机访问,缺点也很明显,头插或中部插入效率很低,这和我们之前学过的 顺序表 性质很像,不过在结构设计上,两者是截然不同的
279 0
C++ STL学习之【vector的使用】
|
存储 C++ 容器
【C++】-- STL之vector详解(一)
【C++】-- STL之vector详解
147 0
【C++】-- STL之vector详解(一)
|
Linux 编译器 C++
【C++】-- STL之vector详解(二)
【C++】-- STL之vector详解
157 0
【C++】-- STL之vector详解(二)