C++STL

C++STL

vector容器讲解:

什么是vector容器?

向量(Vector)是一个封装了动态大小数组的顺序容器,是C++标准库中的一个动态数组容器。它能够自动管理内存大小,可以在运行时根据需要动态增长或缩小。

  • push_back()
    此方法在vector的末尾添加一个新元素。例如,如果我们有一个名为a的vector类型的容器,我们可以使用a.push_back(10);来在容器的末尾添加一个值为10的元素。

  • pop_back()
    此方法用于删除vector的最后一个元素。如果vector为空,调用此方法会导致未定义的行为。例如,我们可以使用a.pop_back();来删除容器a的最后一个元素。

  • size()
    此方法返回vector中的元素个数。例如,我们可以使用int n = a.size();来获取容器a中元素的个数并将其赋值给n。

  • empty()
    此方法检查vector是否为空。如果vector为空,返回true;否则返回false。例如,我们可以使用if(a.empty()) cout << “Vector is empty”;来检查容器a是否为空。

  • clear()
    此方法清除vector中的所有元素。例如,我们可以使用a.clear();来清空容器a。

  • insert()
    此方法在指定位置插入一个新元素。例如,我们可以使用a.insert(a.begin() + 2, 10);在第3个位置插入一个值为10的元素。

  • static_cast<数据类型>
    是C++中用于进行类型转换的运算符。它可以将一个表达式或变量转换为指定的数据类型,在获取vector容器的长度的时候,我经常使用static_cast(容器名称.size())。这种方法想对来说,安全性更高一些。

#include<iostream>
#include<string>

using namespace std;

int main(void){
	vector<int> vector_int_0001(5,5);//这个是声明一个长度为5的一个vector容器,并将其内的所有元素初始化为。
	vector<int> vector_int_0002(5);
	for(int i = 0;i < 5;i++){
		vector_int_0002.push_back(i);//将vector_int_0002中初始化为1,2,3,4,5;
		//其实,如果说我们想要进行添加元素,还可以继续使用.push_back()方法,因为声明的vector是一个动态大小数组的顺序容器,其大小是可以变化的。
		//返


	return 0;
}

vector容器的输入输出

在上面,我们已经说过了,vector容器是一个动态大小的数组容器,可以自动管理内存大小,能够在运行时根据需要进行动态增长或缩小。

而对于vector容器的输入和输出操作,有下面两种方法:

  • 使用下标进行访问

例如,如果我们有一个vector类型的容器a,我们可以通过下面的方式来对其进行输入和输出:

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

int main(){
    vector<int> a(10); // 创建一个大小为10的vector容器
    for(int i=0; i<a.size(); i++){
        cin >> a[i]; // 向容器中输入数据
    }
    for(int i=0; i<a.size(); i++){
        cout << a[i] << " "; // 输出容器中的数据
    }
    return 0;
}
  • 使用迭代器进行访问

此外,我们还可以使用迭代器来遍历并操作vector容器中的元素,例如:

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

int main(){
    vector<int> a(10); // 创建一个大小为10的vector容器
    for(auto it = a.begin(); it != a.end(); it++){
        *it = *it * 2; // 将容器中的每个元素乘以2
    }
    for(auto it = a.begin(); it != a.end(); it++){
        cout << *it << " "; // 输出容器中的数据
    }
    return 0;
}

vector容器的各种声明方法:

  1. 默认构造函数声明vector容器
std::vector<int> vec; // 默认构造函数创建一个空的vector容器
  1. 初始化列表声明vector容器
std::vector<int> vec = {1, 2, 3}; // 初始化列表创建一个包含三个元素的vector容器
  1. 指定初始容量声明vector容器
std::vector<int> vec(5); // 指定初始容量为5的vector容器,初始值为0
  1. 使用迭代器声明vector容器
std::vector<int>::iterator it; // 声明一个指向int类型的迭代器it
std::vector<int> vec(it + 5, it + 10); // 从迭代器it+5开始到迭代器it+10结束的元素创建一个vector容器
  1. 使用指针和长度声明vector容器
int* arr = new int[5]{1, 2, 3, 4, 5}; // 动态分配一个包含五个整数的数组arr
std::vector<int> vec(arr, arr + 5); // 使用指针arr和长度5声明一个包含五个整数的vector容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值