1. STL体系结构基础、容器之分类与各种测试
STL六大部件:
容器(Containners),分配器(Allocators),算法(Algorithms),迭代器(Iterators),适配器(Adapters),仿函数(Functors).
前闭后开区间:
*(c.begin())指向第一个元素
*(c.end())指向最后一个元素的后一个位置
容器结构与分类:
序列容器:
Array(C++ 11 提供) ,Vector,Deque,List,Forward-List(C++11提供)
关联容器:
Set/MultiSet,Unordered Set/MultiSet,Map/MultiMap,Unorder Map/MultiMap(C++11提供,Hash Table实现)
array:
array<int,ASIZE> c;
c.szie();
c.front()
c.back();
c.data() ;返回第一个元素地址
vector:
v.pushback(Arg);//空间不够之后两倍扩展
v.size()
v.front()
v.back()
v.data()
v.capacity()
list:
l.push_back()
l.size()
l.max_size()
l.front()
l.back()
l.sort()
forward_list
f.push_front()
f.max_size()
f.front()
deque:
d.push_pack()
d.size()
d.front()
d.back()
d.max_size()
stack:容器的适配器(使用deque)
s.push()
s.size()
s.top()
queue:容器的适配器(使用deque)
q.push()
q.pop()
q.size()
q.front()
q.back()
set,
multiset ,
hash_set
unordered_set,
hash_multimap
unordered_multiset
set<string> c;
c.insert("test");
c.szie()
c.max_size()
auto p=c.find("test");
if (p==c.end())
map,
multimap ,
hash_map
unordered_map,
unorder_multimap
hash_multimap