![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
薛定谔抓猫
这个作者很懒,什么都没留下…
展开
-
c++中vector和string的erase用法
c++中vector和string的erase用法区别vector中的erase的参数是迭代器,可以从vector中删除某个位置的元素,或者是范围内的元素:iterator erase (const_iterator position);iterator erase (const_iterator first, const_iterator last);两个参数时,满足左闭右开,即删除的...原创 2020-04-01 12:31:58 · 995 阅读 · 0 评论 -
map按照value的值排序结果
map按照value的值排序输出map内部是由红黑树构成的(虽然不懂啥是红黑树),其顺序是固定的,即按照key的大小排序存放。因此直接进行排序是不现实的,故借助vector进行排序。其核心是,将map转为vector存储其内部的每组pair,然后对vector进行排序即可。代码如下:bool cmp(const pair<string,int> &a,const pai...原创 2020-03-21 22:00:25 · 284 阅读 · 0 评论 -
map的嵌套使用方法
map的嵌套使用方法vector可以理解为一种映射关系,给定指定的int值,都会返回与其对应的特定类型的值。类比vector,map也可以理解一种映射关系,只不过比起vector更加灵活,给定值不再局限于int型,可以任意指定。因此,从这个角度来理解map,对于算法题的使用可以十分灵活。对应的高维的map(嵌套map)也比较容易理解了。定义一个嵌套的map;map<int,map&...原创 2020-03-21 20:56:10 · 5354 阅读 · 0 评论 -
c++ 输入带有空格的字符并进行处理
利用getline(cin,string);可以用来输入带有空格的字符串,再利用stringstream类进行赋值处理。 vector<string> words; string in_str,word; getline(cin,in_str); stringstream ss(in_str); while(ss>>word) words.push_ba...原创 2020-03-17 09:59:33 · 598 阅读 · 0 评论 -
sstream 循环流入变量
c++ 直接用sstream进行循环做数据的流入流出时,总是会出现最后多循环一次的现象。如: stringstream ss1("11 12 12 21 32 52"); string str; while(ss1) { ss1>>str; cout<<str<<endl; }输出结果经过查实,stringstream会...原创 2020-02-29 18:07:15 · 198 阅读 · 0 评论 -
c++ 字符串中删除指定的字符
string没有直接的删除指定字符的方法,可以利用find和erase或者substr实现。string str;string target;int pos = str.find(target);n = target.size();str = str.erase(pos,n); 若包含多个特定字符,则循环删除即可。注意find的查找成功返回的是指定元素的第一个位置,失败则返回-1...原创 2020-02-29 17:48:40 · 11277 阅读 · 0 评论 -
c++ 字符串的输入方式
一般而言,可以用cin直接将输入流入某个变量中,输入以空格或者回车结尾。因此对于字符串而言,这样的结果是无法将空格流入变量之中。对应的,可以使用getline的方法,输入一行,将空格也当作变量,而非分隔符。getline(cin,str);对于多行的输入,也可类似的实现: while(getline(cin,str[num])) { num++; }上述循环中,其返回值是ci...原创 2020-02-29 16:19:07 · 575 阅读 · 0 评论 -
c++ STL stack 快速上手
STL中需要用到stack库实现对栈的支持。栈的构造,一般只用来构造空栈。#include<stack>stack<int> s;入栈与出栈: s.push(2); cout<<s.top()<<endl; s.push(3); cout<<s.top()<<endl; cout<<"size ...原创 2020-02-27 11:57:57 · 115 阅读 · 0 评论 -
数组中的元素个数
数组的元素个数可以用c的sizeof函数实现l = sizeof(a)/sizeof(a[0]);其最后位置的元素自然为a[sizeof(a)/sizeof(a[0])-1];做一个对比,vector的元素个数可以用sizevector<int> number(17);cout<<number.size();...原创 2020-02-26 17:11:14 · 2430 阅读 · 0 评论 -
vector快速上手
初始化方法: vector<int> v1; vector<int> v2(4); //大小为4,值都为0 vector<int> v3(4,6); //大小为4,值都为6 int b[7]={1,2,3,4,5,6,7}; vector<int> v4(b,b+7); //用数组来初始化重置大小: for(i=0;i<...原创 2020-02-19 18:09:40 · 107 阅读 · 0 评论 -
C++ STL string 中erase 与 substr 用法
可以将erase理解为删除某个指针所指向的值,传入的是个迭代器(指针),删除字符串中此指针所指字符。 string s = "987654321"; s.erase(s.begin()+2); cout<<s<<endl;输出:98654321或者删除字符串某个位置开始几个字符: string s = "987654321"; s.erase(2,3);...原创 2020-02-19 11:51:09 · 1553 阅读 · 0 评论 -
c++ stl string的基本知识
string 中的begin 和end可以理解为指向头和尾的指针,因此可以用*s.begin()检索第一个位置的元素。 string s = "54321"; cout<<*s.begin();输出:5请按任意键继续. . .对比没有*的情况: string s = "54321"; cout<<s.begin();输出54321请按任意键继续. ....原创 2020-02-19 10:29:02 · 263 阅读 · 0 评论