1、容器指针
#include<algorithm>
std::vector<T>::iterator
rbegin()指向最后一个元素,end()指向最后一个元素的下一个。
rend()和begin()都指向第一个元素,是相等的。
2、queue先进先出
#include<queue>
往队列插入元素push或者emplace (尾巴),读取尾巴数据back()
移除最先插入的数据 pop(),读取头部数据front();
3、deque与vector的区别
deque不能从中间插入或删除元素,只能从首尾插入,其他与vector一样
push_back(), push_front()
pop_back() //移除最后一个元素
4. unordered_map
数据结构是红黑树,一种近似于平衡的二叉查找树,里面的数据是有序的。
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main()
{
//定义并且初始化
std::unordered_map<std::string, std::string> u = {{ "RED", "#FF0000" },
{ "GREEN", "#00FF00"},
{ "BLUE", "#0000FF" }};
//遍历每一个元素
for(auto it : u)
{
cout<<it.first<<" "<<it.second<<endl;
}
//打印元素个数
if(!u.empty())
cout<<"size = "<<u.size()<<endl;
//添加新的元素
u["BLACK"] = "#000000";//这样添加的元素在最前面 begin()
u["WHITE"] = "#FFFFFF";//这样添加的元素在最前面 begin()
//指针方式遍历元素
for(auto it = u.begin();it != u.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//两种访问元素的方法
std::cout << "The HEX of color RED is:[" << u["RED"] << "]\n";
std::cout << "The HEX of color BLACK is:[" << u["BLACK"] << "]\n";
std::cout << "The HEX of color RED is:[" << u.at("RED") << "]\n";
std::cout << "The HEX of color BLACK is:[" << u.at("BLACK") << "]\n";
//三种删除元素的方法
u.erase(u.begin()); // erasing by iterator
u.erase("BLACK"); // erasing by key
//u.erase(u.find("BLUE"), u.end()); // erasing by range
for(auto it = u.begin();it != u.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
return 0;
}