stl蓝桥杯

string
string s1初始化
string s1="value"赋值
在这里插入图片描述
cin 遇见空格停止读取要想读取一整个句子

string str;
getline(cin, str);
cout << str << endl;

set
set,set里面的元素是有序的且唯一的,只要你往set里添加元素,它就会自动排序,而且,如果你添加的元素set里面本来就存在,那么这次添加操作就不执行。要想用set先加个头文件set。
set 必须使用迭代器

set<int> num//定义set
num.insert(8)//插入
num.erase()//删除
例如
num.erase(8)
num.erase(num.find(100))//找到100并删除
num.size()//获取set中元素个数

输出
for(set<int>::iterator it=num.begin();it!=num.end();it++){
        printf("%d\n", *it);    //只输出200
    }

map

#include<map>
#include<iostream>
#include<string>
using namespace std;

	int main()
	{
		map<string, double> a;
		a["aab"] = 12.6;//赋值
		a["abc"] = 14.9;
		a["aac"] = 16.6;
		map<string, double>::iterator it;//迭代器
		for (it = a.begin(); it != a.end(); it++)//遍历
			cout << (*it).first << ' ' << (*it).second << endl;
		a["aab"] = 18.8;//修改
		a.erase("abc");//删除abc
		it = a.find("aac");//搜索某个键。搜索到了的话返回迭代器的位置,搜索不到返回end()位置
		cout << "******"<<(*it).second << endl;//输出对应的值
		a.erase(it);
		for (it = a.begin(); it != a.end(); it++)//遍历
			cout << (*it).first << ' ' << (*it).second << endl;
		

	}

queue队列 先进先出
queue入队,如例:q.push(x); 将x 接到队列的末端。

queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问queue队首元素,如例:q.front(),即最早被压入队列的元素。

访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。

判断queue队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

二分
lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。

upper_bound(起始地址,结束地址,要查找的数值) 返回的是 第一个大于待查找数值 出现的位置。

binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。
如果所有元素都小于val,则返回last的位置,且last的位置是越界的!

int main()
{
	for (int i = 0; i <= 7; i ++) n[i] = i*2;
	int a = upper_bound(n, n + 8, 12)-n;//>12
	cout << a<<" "<<n[a]<<endl;
	int b = lower_bound(n, n + 8, 5) - n;//>=5
	cout << b << " " << n[b];
	return 0;
}

vector 不定长数组可以很好解决数组不知道长度的问题,节约空间

v.push_back() 在最后面加入元素
v.empty() 判断是否为空
v.back()返回最后一个元素
v.front()返回第一个元素
v[i] 返回第i个元素
v.size() 返回元素个数



void Cal_GCD1(int a, int b)
{
if(b == 0) //如果除数b等于0,不可以再继续进行辗转相除,此时的a就是最大公约数
return a;
else
return Cal_GCD1(b, a % b);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值