C++之Vector的使用

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;
}
发布了59 篇原创文章 · 获赞 5 · 访问量 5052

猜你喜欢

转载自blog.csdn.net/qq_38496329/article/details/104114135