蓝桥杯基础知识7 vector

蓝桥杯基础知识7 vector

vector 的定义和特性:在C++中,vector是一个动态数组容器,可以存储一系列相同类型的元素。

vector 是一个模板类,使用之前包含头文件,声明一个vector对象vec,T是存储在vector中的元素类型。

std::vector vec;

容器大小:vector 是一个动态数组,根据需要自动调整大小,根据元素的数量动态分配内存空间。

元素访问:通过索引访问 vector 中的元素,索引从0开始,最后一个索引是 size() - 1,可以使用[]运算符或 at() 函数来访问元素。

元素添加和删除:push_back() 函数在vector的末尾添加元素,pop_back()函数删除末尾元素,insert() 函数在指定位置插入元素,erase() 函数删除指定位置的元素。

容器大小管理:size() 函数获取 vector 中元素数量,empty() 函数检查 vector 是否为空,resize() 函数调整 vector 大小。

迭代器:vector 提供迭代器,可遍历容器中的元素,begin() 函数获取指向第一个元素的迭代器,end() 函数获取指向最后一个元素的迭代器。

02 vector 的常用函数

push_back():将元素添加到 vector 末尾。

void push_back(const T& value);

pop_back():删除 vector 末尾元素。

void pop_back();

begin() 和 end():返回指向vector 第一个元素 和 最后一个元素之后位置的迭代器。

std::vector vec = {10, 20, 30};
for (auto it = vec.begin(); it != vec.end(); ++it) { // 迭代器不能写 it += 1
    std::cout << *it << " ";
}
iterator begin();
const_iterator begin() const;
iterator end();
const_iterator end() const;

03 vector 排序去重

#include

std::vector vec = {...};
std::sort(vec.begin(), vec.end());

排序:对 vector 排序,使用标准库中的 std::sort 函数。

函数头文件,T是 vector 元素类型,

std::sort 函数接受两个迭代器参数,表示排序范围。

vec.begin() 返回指向 vector 第一个元素的迭代器,

vec.end() 指向最后一个元素之后位置的迭代器。

03 vector 排序去重

去重:去除 vector 中重复元素,使用 std::unique 函数。

#include

std::vector vec = {...};
std::sort(vec.begin(), vec.end());
auto last = std::unique(vec.begin(), vec.end());
vec.erase(last, vec.end());

对 vector 排序,方便相同的元素排到相邻的位置,std::unique 函数将重复元素移到 vector  末尾,并返回指向第一个重复元素的迭代器,使用 vec.erase 函数将重复元素删除。

#include
#include
#include
 
int main(){
    std::vector vec = {2, 1, 3, 2, 4, 1, 5, 4};
    std::sort(vec.begin(), vec.end());
    auto last = std:: unique(vec.begin(), vec.end());
    vec.erase(last, vec.end());
 
    for(const auto& num : vec){ // 1 2 3 4 5
        std::cout << num << " ";
    }
    return 0;
}

可结合学习:

蓝桥杯基础知识5 unique()-CSDN博客

C++ vector的用法(整理)-CSDN博客

C++ vector 容器浅析 | 菜鸟教程 (runoob.com)

你可能感兴趣的:(蓝桥杯,蓝桥杯,c++)