蓝桥杯基础知识7 vector

蓝桥杯基础知识7 vector

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

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

std::vector<T> 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<int> 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<algorithm>

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

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

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

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

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

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

03 vector 排序去重

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

#include<algorithm>

std::vector<T> 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<iostream>
#include<vector>
#include<algorithm>
 
int main(){
    std::vector<int> 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)

相关推荐

  1. 基础知识7 vector

    2024-02-07 23:36:01       44 阅读
  2. 基础知识5 unique()

    2024-02-07 23:36:01       57 阅读
  3. 基础知识8 list

    2024-02-07 23:36:01       54 阅读
  4. 基础知识1 字母大小写转换

    2024-02-07 23:36:01       74 阅读
  5. 基础知识4 swap()、reverse()

    2024-02-07 23:36:01       65 阅读
  6. python组基础知识速学!!!!

    2024-02-07 23:36:01       113 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-07 23:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-07 23:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-07 23:36:01       82 阅读
  4. Python语言-面向对象

    2024-02-07 23:36:01       91 阅读

热门阅读

  1. 2024/2/7 图的基础知识

    2024-02-07 23:36:01       59 阅读
  2. 随身wifi两条命令刷入debian系统

    2024-02-07 23:36:01       59 阅读
  3. eventbus增加个缓存池

    2024-02-07 23:36:01       55 阅读
  4. Linux和Windows文件共享实现方式

    2024-02-07 23:36:01       51 阅读
  5. 绕过安全狗优化

    2024-02-07 23:36:01       47 阅读
  6. opencv中的img格式

    2024-02-07 23:36:01       50 阅读
  7. LLaMA 模型和DeepSpeed 框架联系与使用

    2024-02-07 23:36:01       63 阅读
  8. 6.824-Lab 1: MapReduce

    2024-02-07 23:36:01       54 阅读
  9. 查看jar包编译的jdk版本

    2024-02-07 23:36:01       55 阅读
  10. Android:View&Adapter

    2024-02-07 23:36:01       55 阅读
  11. Python调用cuRandSobol生成Sobol

    2024-02-07 23:36:01       46 阅读