目录
  1. 1. C++语法学习之Vector
    1. 1.1. Vector 使用说明
      1. 1.1.1. 引用:
      2. 1.1.2. 初始化
      3. 1.1.3. 增加函数
      4. 1.1.4. 删除函数
      5. 1.1.5. 遍历函数
      6. 1.1.6. 判断函数
      7. 1.1.7. 大小函数
      8. 1.1.8. 其他函数
C++语法学习之Vector

C++语法学习之Vector

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 的数据
//assign 为字符串分配一个新值,替换其当前内容。
b.assign(5,1); // b 中 赋值 5 个 1 ,特换原内容
b.assign(a.begin(),a.begin()+3); //从 a 中复制 3 个元素到 b
return 0;
}
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-01/30/%E5%AD%A6%E4%B9%A0/C++%E8%AF%AD%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8BVector/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论