STL容器中存放不同类型实现方法

都知道C++STL容器,只要定义好之后就只能存定义的类型,不能放入别的类型。以vector容器为例,定义好只存int类型,其它类型将无法存入。vector vecint;
vecint.push_back(10);
vecint.push_back(‘s’); //错误,只能放入int类型哪容器里有没有办法可以存不同类型呢?

C++Stack堆栈各函数作用

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。

C++Set各函数作用

set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。

C++ Multimap各函数作用

  多重映射关联容器存储元素的组合形成的键值映射值,按照特定的顺序,多个元素可以有相同键值。    多重映射的键值通常用于排序和惟一地标识元素,而这个密钥关联映射值存储内容。键的类型和映射值可能有所不同,并在成员类型value_type组合在一起。