蓝桥杯 vector
vector的定义和特性
注意:vector需要开C++11标准
vector的常用函数
push_back():将元素添加到vector末尾
pop_back():删除vector末尾的元素
begin()和end():返回指向vector第一个元素和最后一个元素之后一个位置的迭代器。
示例
vector<int> vec={10,20,30};
for(auto it=vec.begin();it !=vec.end();it++){
cout<<*it<<" ";
vector排序去重
示例
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
vector<int> vec={2,1,3,2,4,1,5,4};
sort(vec.begin(),vec.end());
auto last=unique(vec.begin(),vec.end());
vec.erase(last,vec.end());
for(const auto& num:vec){
cout<<num<<" ";
}
return 0;
}
代码示例
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
//创建一个空的vector对象
vector<int> numbers;
//向向量中添加元素
numbers.push_back(5);
numbers.push_back(2);
numbers.push_back(8);
numbers.push_back(5);
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(9);
numbers.push_back(8);
//打印向量中的函数
cout<<"原始向量中的函数:";
for(const auto&number:numbers){
cout<<number<<" ";
}
cout<<endl;
//对向量进行排序
sort(numbers.begin(),numbers.end());
//打印排序后的向量
cout<<"排序后的向量:";
for(const auto&number:numbers){
cout<<number<<" ";
}
cout<<endl;
//去除重复元素
numbers.erase(unique(numbers.begin(),numbers.end()),numbers.end());
//打印去重后的向量
cout<<"去重后的向量: ";
for(const auto&number:numbers){
cout<<number<<" ";
}
cout<<endl;
//向向量中插入元素
numbers.insert(numbers.begin()+2,3);
//打印插入元素后的向量
cout<<"插入元素后的向量:";
for(const auto&number:numbers){
cout<<number<<" ";
}
cout<<endl;
//检查向量是否为空
if(numbers.empty()){
cout<<"向量为空"<<endl;
} else{
cout<<"向量不为空"<<endl;
}
//获取向量的大小
cout<<"向量的大小:"<<numbers.size()<<endl;
//清空向量
numbers.clear();
//检查向量是否为空
if(numbers.empty()){
cout<<"向量为空"<<endl;
} else{
cout<<"向量不为空"<<endl;
}
return 0;
}