STL常用操作

注意:为了您的c++着想,请不要编译或运行以下任何代码!!!

vector

//vector,俗称动态数组,是一个可以改变大小的数组。
#include<vector>
#include<iostream>
using namespace std;
int main()
{
	vetcor<type> name;//定义方法,定义一个动态数组,type替换成其他类型(也可以套用vector),name 即这个动态数组的名字。
	name.clear();//清空“name”,结束之后,“name”的长度为0
	name.empty();//判断“name”是否为空,若返回true,则“name”为空,若返回false,则“name”不为空
	name.push_back(value);//在“name”末尾放入一个值为value的元素(必须与“name”类型一样),并且自动扩容
	name.insert(iterator,value);//在“name”中指针iterator指向的元素后插入一个值为value的元素,若指向最后一个元素之后的一个元素,则与push_back相同效果,一般使用name.insert(name.begin()+n,value)在第n个元素前插入一个值为value的元素,若n=name.size(),则与push_back相同效果。
	name.resize(number);//将“name”的大小强制改变成number,大小太大将末尾删除,大小太小就在“name”末尾加0
	name.erase(iterator);//删除“name”中地址为iterator的元素
	name.erase(iterator1,iterator2);//删除“name”中从地址为iterator1至地址为iterator2区间中的元素
	name.pop_back();//删除“name”中的最后一个元素
	name.begin();//返回“name”的第一个元素的地址
	name.end();//返回“name”最后一个元素再后一个的地址
	name.size();//返回“name”的长度
	//vector的遍历
	//方法1
	for(int i=0;i<name.size();i++)//当做一个数组,并且遍历下标
		cout<<name[i]<<" ";
	//方法2
	for(vactor<type>::iterator i=name.begin();i!=name.end();i++)//定义指针(其type必须与“name”的类型一致),并且从第一个元素的地址一直遍历至最后一个元素的地址,输出每个指针所指向的元素
		cout<<*i<<" ";
	return 0;
}

map

//map有一点类似于python中dic,可以以各种类型为下标进行数据存储,其内部实现使用的是红黑树,查找时间复杂对为
#include<map>
#include<iostream>
using namespace std;
int main()
{
	map<type1,type2> name;//定义map,type1替换为下标的类型,type2替换为存储内容的类型
	name.clear();//清空“name”,结束之后,“name”的size为0,且所有元素访问结果都是内至的初值
	name.empty();//判断“name”是否为空,若返回true,则“name”为空,若返回false,则“name”不为空
	name.begin();//返回“name”的第一个元素的地址
	name.end();//返回“name”最后一个元素再后一个的地址
	name.size();//返回“name”中已经访问过的元素的数量(判断时的访问也属于访问)
	//map的遍历
	//方法1
	for(map<type1,type2>::iterator i=name.begin();i!=name.end();i++)//定义指针(其type必须与“name”的类型一致),并且从第一个元素的地址一直遍历至最后一个元素的地址,输出每个指针所指向的下标与其中的内容
		cout<<i->first<<":"<<i->second<<"\n";
	return 0;
}

set

#include<set>
#include<iostream>
using namespace std;
int main()
{
	set<type> name;//定义方法,定义一个可去重集合,type替换成其他类型
	name.clear();//清空“name”,结束之后,“name”的长度为0
	name.empty();//判断“name”是否为空,若返回true,则“name”为空,若返回false,则“name”不为空
	name.insert(value);//在“name”的末尾插入一个值为value的元素,并且自动去重,排序
	name.erase(iterator);//删除“name”中地址为iterator的元素
	name.erase(iterator1,iterator2);//删除“name”中从地址为iterator1至地址为iterator2区间中的元素
	name.erase(value);//删除“name”中值为value的元素
	name.begin();//返回“name”的第一个元素的地址
	name.end();//返回“name”最后一个元素再后一个的地址
	name.size();//返回“name”的长度
	name.find(value);//寻找“name”中值为value的元素,若找到,则返回该元素的地址,否则返回name.end()
	//map的遍历
	for(map<type>::iterator i=name.begin();i!=name.end();i++)//定义指针(其type必须与“name”的类型一致),并且从第一个元素的地址一直遍历至最后一个元素的地址,输出每个指针所指向的元素
		cout<<*i<<" ";
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值