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;
}
标签:num,函数,元素,back,vector,push
From: https://www.cnblogs.com/777CC/p/18049058