C++语法学习
Vector 使用说明
Vector代表是一个封装了动态大小数组的顺序容器,也就是一个
动态数组(变长数组)
可以简单的认为,向量是一个能够存放
任意类型
的动态数组。
引用:
#include < vector>
。下文统一采用的万能头,就不一一引用了
初始化
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a ; //声明一个int型的动态数组a
vector<int> a(10) ; //声明一个初始大小为10的动态数组,输出后会发现会有默认值
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的动态数组
vector<int> b(a) ; // 声明并用数组a初始化数组b;复制a数组
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
}
增加函数
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a(5,1) ;//声明一个初始大小为5,默认值为1的动态数组 a
vector<int> b(5) ;//声明一个初始大小为5的动态数组 b
a.push_back(2); // 在a的末尾添加一个元素2
a.insert(a.begin(),3); //在a的开头前插入一个元素3
a.insert(a.begin(),2,6); //在a的开头前插入 2 个 6
b.insert(b.begin(),a.begin(),a.end()); //在b的开头插入a整个数组
for(int i=0;i<a.size();i++)
cout<<a[i]<<",";
cout<<endl;
for(int i=0;i<b.size();i++)
cout<<b[i]<<",";
return 0;
}
删除函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> b(5,1) ;//声明一个初始大小为5的动态数组 b
b.erase(b.begin(),b.begin()+2);//从首位第 0 个开始,到第 1 个(共2个) 删除
b.erase(b.begin()+2);//删除第 2 个元素 ,从 0 号开始
b.pop_back(); //删除最后一个元素
b.clear(); //清空所有元素
return 0;
}
遍历函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> b(5,2) ;//声明一个初始大小为5的动态数组 b
b.push_back(3);
cout<<b.at(5)<<endl; //返回第 5 个元素,首个从 0 开始
cout<<b.front()<<endl; //返回首个元素
cout<<b.back()<<endl; //返回末尾元素
b.begin(); //返回向量头指针,指向第一个元素
b.end(); //返回向量尾指针,指向向量最后一个元素的 下一个位置
b.rbegin(); //反向迭代器,指向最后一个元素
b.rend(); //反向迭代器,指向第一个元素之前的位置
return 0;
}
图示:
判断函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a(5,3) ;//声明一个初始大小为5的动态数组 b
vector<int> b;
if(a.empty()) //判断 a 数组是否为空
cout<<"a empty"<<endl;
if(b.empty()) //判断 b 数组是否为空
cout<<"b empty"<<endl;
return 0;
}
大小函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a(5,3) ;//声明一个初始大小为5的动态数组 b
vector<int> b;
a.pop_back(); //移除最后一个元素
cout<<a.size()<<endl; //返回 a 中元素个数
cout<<a.capacity()<<endl; //返回 a 的容量
cout<<a.max_size()<<endl; //返回最大可允许的 vector 元素个数
return 0;
}
其他函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a(5,3) ;//声明一个初始大小为5的动态数组 b
vector<int> b;
swap(a,b); //交换 a 和 b 的数据
return 0;
}
其他函数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> a(5,3) ;//声明一个初始大小为5的动态数组 b
vector<int> b;
//swap(a,b); // 交换 a 和 b 的数据
// assign 为字符串分配一个新值,替换其当前内容。
b.assign(5,1); // b 中 赋值 5 个 1 ,特换原内容
b.assign(a.begin(),a.begin()+3); //从 a 中复制 3 个元素到 b
return 0;
}