1 元素
容器的元素是被插入对象的副本,因此元素必须属于有个允许容器的实现对她进行复制的类型。容器可以利用复制构造函数或者赋值做元素的复制工作。
2 比较
关联容器要求其元素是有序的。默认方式是<运算符定义。如果<不合适,可以提供比较合适的比较操作。比如定义一个函数对象。
对于顺序准则cmp:
1 cmp(x,x)==false.
2 if cmp(x,y) and cmp(y,z),then cmp(y,z).
3 define equiv(x,y)为 !( cmp(x,y)||cmp(y,x) ).
4 其他的关系运算符,都可以通过<和==进行构建。
二 序列
1 list
粘接splice().这个相当于剪贴过去,不做复制。
merge()归并排序。这个需要注意的时候,在规定前,需要保证2个list中的排列顺序是和目标list需要排列的顺序一致。The default order for the first member function is ascending order.
二 关联容器 map set mulltimap multiset
map
比较,默认规定,关键码比较采用<,但是,可以通过末班参数或者构造函数的参数提供替代运算。
对于下标[]。由于[]总需要V(),如果一个map的值类型没有默认值,就无法对他使用下标操作。这是标准关联容器的一个很不幸的限制。。
对于multimap,无下标操作[],使用equal_range(),lower_bound(),uper_bound()操作。
三 拟容器 string valarray bitset