当前位置:C++技术网 > 资讯 > 关联式容器的存储

关联式容器的存储

更新时间:2015-11-12 23:12:55浏览次数:1+次

关联式容器依据特定的排序准则,自动为其元素排序。排序的形式以函数形式呈现,用来比较元素值或元素键。缺省情况下以operator<进行操作比较。通常关联式容器由二叉树实作出来,关联式容器由二叉树实作出来。在二叉树中,每个元素(结点)都有一个父节点和两个子节点:左子树的所有元素都比自己小,右子树的所有元素都比自己大。
我们来看看具体实例:
#include "iostream"
#include "set"

int main()
{
	typedef std::set<int> IntSet;
	IntSet coll;
	coll.insert(3);
	coll.insert(1);
	coll.insert(5);
	coll.insert(4);
	coll.insert(1);
	coll.insert(6);
	coll.insert(2);

	IntSet::const_iterator pos;
	for(pos=coll.begin();pos!=coll.end();++pos)
	{
		std::cout<<*pos<<' ';
	}
	std::cout<<std::endl;
}

内部储存图:

你不需要管它是怎样运行的。迭代器是容器定义的(上面的代码

IntSet::const_iterator pos;
说明了这点),所以无论容器内部结构如何复杂,它都知道如何进行迭代。举例,如果迭代器指向第三个元素,操作符++便会将它移动到上端的第四个元素,再一次++,便会将它移动到下方的第五个元素: