c++容器vector
cc 提升ing 变优秀ing
有需要搜广推nlp实习生的部门吗?
展开
-
c++:STL:优先队列的定义
优先队列:priority_queue定义1:最简单。priority_queue<int> q;队列从头至尾,是从大到小。定义2:结构体。定义3:greater,less从头到尾是递增的。priority_queue<int,vector<int>,greater<int> > q;从头到尾是递减的。priority_queue<int,vector<int>,less<int> > q;...原创 2021-01-04 18:18:18 · 209 阅读 · 0 评论 -
reverse:c++ 反转vector
#include<bits/stdc++.h>using namespace std;int main(){ vector<int> v={1,2,3}; reverse(v.begin(),v.end()); for(int i=0;i<3;i++) cout<<v[i]<<' ';}原创 2020-12-17 14:45:42 · 1594 阅读 · 0 评论 -
leetcode:438. 找到字符串中所有字母异位词(哈希表)---------map的相等要慎用。
题目:分析:自己想了会没想出来。自己想的是把目标排序,然后以固定窗口在长字符串上滑动,窗口内的直接排序。那为什么不借助一个哈希呢?代码,直接map出问题了:class Solution {public: vector<int> findAnagrams(string s, string p) { map<char,int> m1,m2; for(int i=0;i<p.size();i++) {原创 2020-12-04 10:34:12 · 115 阅读 · 0 评论 -
洛谷:P1631 序列合并(普及+/提高,二叉堆与 ST 表)
题目:分析:看似简单,还挺复杂的吧。暴力+vector:#include<bits/stdc++.h>using namespace std;int m;int main(){ //priority_queue<int,vector<int>,greater<int> > q; cin>>m; int A[m]; vector<int> v; for(int i=0;i<m;i++) cin>>原创 2020-09-13 18:27:36 · 911 阅读 · 0 评论 -
洛谷:P1168 中位数(stl,二叉堆与 ST 表,普及+/提高 )
题目:分析:我只想到了在原有排序算法上进行优化修改来实现这个题。大佬stl:#include<bits/stdc++.h>using namespace std;int m;int main(){ cin>>m; vector<int> v; for(int i=0;i<m;i++) { int c; cin>>c; v.insert(lower_bound(v.begin(),v.end(),c),c); if(原创 2020-09-13 14:46:13 · 168 阅读 · 0 评论 -
洛谷:P3405 [USACO16DEC]Cities and States S(stl)
题目:分析:自己想了想貌似不需要图,第一想法就是map,瞄了一下题解,是map,自己继续想吧。呵呵,看题解吧:#include<bits/stdc++.h>using namespace std;map<string,string> m1;//存放对应关系 map<string,vector<string> > m2;//开头为XX的 有哪些单词 vector<string> vs;int main(){ int m; cin原创 2020-09-05 20:38:53 · 344 阅读 · 0 评论 -
洛谷:P5250 【深基17.例5】木材仓库(普及/提高-,stl)--set的二分
题目:分析:我用之前的set做吧,刚好有查找函数。代码:#include<bits/stdc++.h>using namespace std;set<int> s;int main(){ s.insert(2000000005); s.insert(-2000000005); int m; cin>>m; for(int i=0;i<m;i++) { int m1,m2; cin>>m1>>m2; i原创 2020-08-27 22:18:00 · 351 阅读 · 0 评论 -
洛谷:P3613 【深基15.例2】寄包柜(stl,普及-)
题目:分析:map+vector。代码:#include<bits/stdc++.h>using namespace std;vector<map<int,int> > vm;int m,n;int main(){ cin>>m>>n; map<int,int> mm; for(int i=0;i<=m;i++) vm.push_back(mm); for(int i=0;i<n;i++) {原创 2020-08-23 01:17:22 · 291 阅读 · 0 评论 -
洛谷:P1449 后缀表达式(普及-,stl)
题目:分析:一个栈。代码:#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; stack<int> st; int num=0; for(int i=0;i<s.size()-1;i++) { if(s[i]=='+') { int a,b; a=st.top();st.pop();b=st.top();st.pop();原创 2020-08-22 23:05:08 · 221 阅读 · 0 评论 -
洛谷:P1160 队列安排(普及/提高-,stl->二叉树的中序遍历)
题目:分析:我本来是想用vector来进行模拟的,做之前看了一下答案,啊,就是一个中序遍历的二叉树啊。我真是个弱鸡。注意,1的左边,还可以有再站到左边,因此,要注意结点的更新,子节点之后不一定是子节点了。代码:#include<bits/stdc++.h>using namespace std;int m,n;int A[100005][2];int B[100005];queue<int> q;void f(int x){ if(A[x][0]!=-1原创 2020-08-22 22:15:13 · 173 阅读 · 0 评论 -
洛谷:P1540 机器翻译(stl。普及- )
题目:分析:显然,os变形。map+queue代码:#include<bits/stdc++.h>using namespace std;int mm,n;int main(){ cin>>mm>>n; queue<int> q; map<int,int> m; int ans=0; for(int i=0;i<n;i++) { int c; cin>>c; if(m[c]==1) {原创 2020-08-22 17:30:05 · 187 阅读 · 0 评论 -
洛谷:P1241 括号序列(stl,普及+/提高 )
题目:分析:cnt1-4:记录个数。第一遍遍历,记录【和(的个数。cnt2:统计需要(的个数,即统计)的个数。题意不清楚啊,不知道他什么意思?我的方法会选在最右边的哪个,放弃中间的哪个。懒得纠结题意在说什么了。总是,括号问题,我记得自己的做法总是,不单单使用stack,而要使用计数器,或者指针。代码:#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; in原创 2020-08-22 15:48:42 · 1031 阅读 · 0 评论 -
洛谷:P4387 【深基15.习9】验证栈序列(stl,线性表的使用,)
题目:分析:第一眼看去,啊,直接逆序。脑补其他的基础栈题。哦,明白了,顺序进去,随时出去。代码:#include<bits/stdc++.h>using namespace std;int main(){ int m; cin>>m; for(int mi=0;mi<m;mi++) { int n; cin>>n; vector<int> v1; vector<int> v2; int c; f原创 2020-08-22 09:53:22 · 216 阅读 · 0 评论 -
洛谷:P2234 [HNOI2002]营业额统计(stl,)
题目:分析:看完题,不知道怎么搜素。只想到了排序。看了题解,set还能这样用啊》。。stl中的集合有内置的:lowerbounder代码:#include<bits/stdc++.h>using namespace std;int main(){ //1000000 set<int> s; s.insert(-5000005); s.insert(5000005); int m; cin>>m; int c; cin>>c;原创 2020-08-21 22:34:34 · 289 阅读 · 0 评论 -
c++:string在原有串后面,添加字符的坑
append是添加字符串:+可添加字符串和字符,但是:这样正确。定义时就是用会出错。原创 2020-04-29 14:56:15 · 2069 阅读 · 0 评论 -
vector vector int的初始化
法1:vector<vector<int>> vv=(2,vector<int>());法2:vector<vector<int> > vv={{1,2},{3,4}};当然,大多数情况下这样定义就够了,而且应该是优先考虑的:vector<int> A[N];...原创 2020-04-02 13:28:18 · 1069 阅读 · 0 评论 -
c++ stl:判断元素是否在集合set中---count
函数:count作用:判断元素是否在集合set中返回值:存在返回1个,不存在返回0个。测试代码: set<int> ss; ss.insert(1); ss.insert(2); cout<<ss.count(1)<<' '<<ss.count(3);结果:...原创 2020-03-28 16:22:03 · 18351 阅读 · 0 评论 -
c++常用函数之stl的accumulate
函数:accumulate头文件:#include当然推荐使用万能头文件: #include<bits/stdc++.h>用途:对vector指定下标区间的求和函数,参数:第一个参数:迭代器,区间开始。第二个 : 迭代器,区间结束。第三个 :进行加法的初值。代码示例:vector<int> nums(3,2); int result...原创 2020-02-03 18:57:05 · 272 阅读 · 0 评论 -
c++的vector向指定位置添加元素(将一个整数按从左到右放到vector中)
要求如题目,采用insert方法。第一个参数要用迭代器,v.begin()+x确定放的位置。**v.insert(v.begin()+x,y)**将一个整数按从左到右放到vector中: int maxx=12345; vector<int> v; while(maxx!=0) { int c=maxx%10; maxx=maxx/10; v.insert...原创 2020-01-17 15:10:21 · 3482 阅读 · 0 评论