stl蓝桥杯

tech2023-10-25  104

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);

}

最新回复(0)