C++刷题精髓在STL编程,还有一些函数。下面我就总结一下本人在刷题过程中,每逢遇见总要百度的内容………………(大概率因为本人刷题太少了)
1. map
map<string,int> m;
map<int,int> m;
key-value一一对应,一个key只能有一个value,且m按key自动排序
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
size() 返回map中元素的个数
迭代:
map<int,int> ::iterator it;for(it = m.begin();it != m.end();it++){ cout << it->first << it->second << endl; }
2. vector
vector<int> vec;
尾部插入数字:vec.push_back(a);
使用下标访问元素,cout<<vec[0]<<endl;
插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
向量大小:vec.size();
清空:vec.clear();
迭代:
vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
3. set
set<int> s;
begin()--返回指向第一个元素的迭代器
clear()--清除所有元素
count()--返回某个值元素的个数
empty()--如果集合为空,返回true
end()--返回指向最后一个元素的迭代器
erase()--删除集合中的元素
find()--返回一个指向被查找到元素的迭代器
insert()--在集合中插入元素
size()--集合中元素的数目
swap()--交换两个集合变量
迭代:
set<int>::iterator it;for(it=s.begin();it!=s.end();it++) cout<<*it<<endl;
4. queue
queue<int> q;
入队,q.push(x); 将x 接到队列的末端。
出队,q.pop(); d出队列的第一个元素,注意,并不会返回被d出元素的值。
访问队首元素,q.front(),即最早被压入队列的元素。
访问队尾元素,q.back(),即最后被压入队列的元素。
判断队列空,q.empty(),当队列空时,返回true。
访问队列中的元素个数,q.size()
while(!q.empty()){ q.front(); q.pop(); }
5. priority_queue
https://blog.csdn.net/weixin_36888577/article/details/79937886
priority_queue <int,vector<int>,greater<int> > q; //升序队列
priority_queue <int,less<int> >q; //降序队列
greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
和队列基本 *** 作相同:
top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) emplace 原地构造一个元素并插入队列 pop d出队头元素 swap 交换内容
6. stack
stack<int> s1;
stack<string> s2;
入栈,s.push(x);
出栈,s.pop();注意,出栈 *** 作只是删除栈顶元素,并不返回该元素。
访问栈顶,s.top()
判断栈空,s.empty(),当栈空时,返回true。
访问栈中的元素个数,s.size()。
while(!s.empty()){ s.top(); s.pop(); }总结
以上是内存溢出为你收集整理的C++ 编程技巧锦集(一)全部内容,希望文章能够帮你解决C++ 编程技巧锦集(一)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)