string:

string s="5418340";
sort(s.begin(),s.end());
cout<<s;
/**begin是头迭代器,end是尾迭代器*/
string s="5418340";
s.erase(s.begin());//删除第一个
s.erase(--s.end());//删除最后一个
cout<<s;
string s="5418340";
s=s.substr(1,3);//取418,取索引为1,往后截断3个
s=s.substr(1,-1);//索引为1,截断到最后
cout<<s;
for(auto it=s.begin();it!=s.end();it++) cout<<*it;
for(auto x:s) cout<<x;

vector

vector<int> v{1,2,3,4,5};
cout<<v[1];//取索引为1的
cout<<v.at(2);//取索引为2的
v.push_back(5);
v.resize(10);//不赋值默认为0 v.erase(v.begin());//删除第一个元素
v.erase(--v.end());//删除最后一个元素
/**获取第一个元素*/
cout<<v.front();
cout<<v[0];
cout<<*v.begin();
/**获取最后一个元素*/
cout<<v.back();
cout<<v[v.size()-1];//size是获取大小
cout<<*--v.end();
sort(v.begin(),v.end(),less<int>());//从小到大
sort(v.begin(),v.end(),greater<int>());//从大到小排序 for(auto it=v.begin();it!=v.end();it++) cout<<*it;//迭代器简化循环
cout<<endl;
for(auto x:v) cout<<x;//c++11

stack

stack<int> s;
s.push(2);
s.push(3);
cout<<s.top()<<endl;
s.pop();
cout<<s.top()<<endl;
cout<<s.size()<<endl;

queue

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,

和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

queue<int> q;

q.push(5);
q.push(6);
cout<<q.front()<<endl;
q.pop(); cout<<q.front()<<endl;
cout<<q.size()<<endl;

map

map<int,int> m;//有序的
m[6]=3;
m[5]=8;
m[4]=9;
for(auto it=m.begin();it!=m.end();it++)
cout<<it->first<<" "<<it->second<<endl;
for(auto tmp:m){
cout<<tmp.first<<" "<<tmp.second<<endl;
} unordered_map<int,int> m;//无序的,哈希结构(底层)
m[6]=3;
m[5]=8;
m[4]=9;
for(auto it=m.begin();it!=m.end();it++)
cout<<it->first<<" "<<it->second<<endl;
for(auto tmp:m){
cout<<tmp.first<<" "<<tmp.second<<endl;
} /*sort*/
bool cmp(pair<int,int> a,pair<int,int> b){
return a.first>b.first;
}
int main(){
unordered_map<int,int> m;//无序的,哈希结构(底层)
m[6]=3;
m[5]=8;
m[4]=9;
vector<pair<int,int>> v(m.begin(),m.end());
sort(v.begin(),v.end(),cmp);
for(auto tmp:v){
cout<<tmp.first<<tmp.second<<endl;
}
return 0;
}

set

set<int> s;//树状结构,有序
unordered_set<int> s2;//哈希结构,无序,快
s.insert(3);
s.insert(4);
s.insert(4);
s.insert(4);
cout<<s.size()<<endl;
for(auto tmp:s)
cout<<tmp<<" ";
cout<<endl;
for(auto it=s.begin();it!=s.end();it++)
cout<<*it<<" ";
cout<<endl;

deque

///概念:双端队列

deque<int> d;
// 4 9 1 2
d.push_back(1);
d.push_back(2);
d.push_front(9);
d.push_front(4);
d.pop_back();
d.pop_front();
for(auto tmp:d) cout<<tmp<<endl;
for(auto it=d.begin();it!=d.end();it++) cout<<*it<<endl; //排序
sort(d.begin(),d.end(),greater<int>());

最新文章

  1. MySQL 使用JOIN优化子查询
  2. laravel框架总结(十一) -- 集合
  3. 剑指offer三: 斐波拉契数列
  4. 树形遍历(java)---孩子双亲表示法
  5. Oracle的常见错误及解决办法
  6. Automake
  7. 10g中注意谓词过滤的位置
  8. 中国省市位置描述JSON数据
  9. bzoj:1656 [Usaco2006 Jan] The Grove 树木
  10. BZOJ 2631: tree [LCT splay区间]
  11. Androd选取相册照片和拍照处理-android学习之旅(62)
  12. vSphere虚拟化平台升级注意事项
  13. bootstrap table 冻结列 ie 兼容
  14. 页面注册系统--使用forms表单结合ajax
  15. inf 启动
  16. SQL Server T—SQL 表连接
  17. SQL、SQL Server、MySQL与Oracle
  18. 使用MVC Razor生成格式良好的HTML Body作为邮件内容
  19. [转帖]amzon最新的产品outposts
  20. UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode character u&#39;\xe9&#39; in position 7: ordinal not in range(128) [duplicate]

热门文章

  1. volatile、ThreadLocal的使用场景和原理
  2. 原生JS实现下拉列表
  3. 4-20mA模拟量采集
  4. Flask之WTF
  5. 【C语言/C++编程学习笔记】你的第一个Windows程序!高级操作~
  6. BASH让标准输出和错误输出颜色不同
  7. docker系统化学习图文+视频教程
  8. ImageMagick实现图片加水印(ImageMagick6.9.10)
  9. JS时间扩展插件
  10. 使用creata-react-app脚手架创建react项目时非常慢的问题