vector

vector的定义和特征

  • 动态数组容器
  • 存储一系列相同类型的元素
  • 标准库<vector>中定义的模板类

声明

  • 加头文件<vector>
  • vector<T> vec; T☞元素类型
  • 容器大小:动态数组可以自己调节
  • 元素访问:通过索引来访问vector中的元素,索引从0开始,到size()-1.可以使用[]运算符或at()函数来访问元素
  • 元素的添加和删除:可以使用push_back()函数再vector的末尾添加元素,使用pop_back()函数删除末尾元素insert()函数在指定位置插入元素,erase()函数删除指定位置的元素
  • 容器大小管理:可以使用size()函数获取vector中元素的数量,使用empty()函数检查vector是否为空.还可以使用resize()函数调整vector的大小.
  • 迭代器:vector提供了迭代器,可以用于遍历容器中的元素.begin()函数获取指向第一个元素的迭代器,使用end()函数获取指向最后一个元素之后位置的迭代器.

vector的常用函数

  • 容器大小:动态数组可以自己调节
  • 元素访问:通过索引来访问vector中的元素,索引从0开始,到size()-1.可以使用[]运算符或at()函数来访问元素
  • 元素的添加和删除:可以使用push_back()函数再vector的末尾添加元素,使用pop_back()函数删除末尾元素insert()函数在指定位置插入元素,erase()函数删除指定位置的元素
  • 容器大小管理:可以使用size()函数获取vector中元素的数量,使用empty()函数检查vector是否为空.还可以使用resize()函数调整vector的大小.
  • 迭代器:vector提供了迭代器,可以用于遍历容器中的元素.begin()函数获取指向第一个元素的迭代器,使用end()函数获取指向最后一个元素之后位置的迭代器.

vector排序去重

排序sort

  • 头文件<algorithm>

去重unique

  • 头文件<algorithm>

代码示例

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> num;//建立一个容器
    //插入元素
	num.push_back(5);
    num.push_back(6);
    num.push_back(7);
    num.push_back(9);
    num.push_back(2);
    num.push_back(1);
    num.push_back(3);
    num.push_back(4);
	//打印元素
    cout << "原始向量中的元素:";
    //for循环遍历
	for (const auto& num : num){
        cout << num <<" ";
    }
    cout << endl;
	//对容器中元素进行排序
    sort(num.begin(),num.end());
    cout << "排序后的向量:";
    for (const auto& num : num){
        cout << num <<" ";
    }
    cout << endl;
   //先对容器中相邻相同元素进行去重,然后再删除相同的元素 num.erase(unique(num.begin(),num.end()),num.end());
    cout << "去重后的向量:";
    for(const auto& num : num){
        cout << num <<" ";
    }
    cout << endl;
    num.insert(num.begin() + 2,3);//在下标为2的位置插入3
    cout << "插入元素后的向量:";
    for(const auto& num : num){
        cout << num <<" ";
    }
    cout << endl;
    num.erase(num.begin() + 4);//删去下标为4的值
    cout << "删除元素后的向量:";
    for(const auto& num : num){
        cout << num <<" ";
    }
    cout << endl;
	//检查容器是否为空
    if(num.empty()){
        cout << "向量为空" << endl;

    }else{
        cout << "向量不为空"<< endl;

    }
    cout << "向亮的大小:" << num.size() << endl;
	//删除容器中元素
    num.clear();
    if(num.empty()){
        cout << "向量为空" << endl;

    }else{
        cout << "向量不为空" << endl;
    }
    return 0;
}
posted @   777CC  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示