首页 > 编程 > C++ > 正文

c++之stl 二叉树

2019-11-06 06:12:21
字体:
来源:转载
供稿:网友

   set是根据元素值进行排序的集合,所插入的元素在集合中唯一,不存在重复元素。

set由二叉搜索树实现,并且对树进行了平衡处理,使得元素在树中分部较为均匀,因此能保持搜索、插入、删除的复杂度在O(logn)。

函数名功能复杂度
size()返回set中的元素数O(1)
clear()清空setO(n)
begin()返回指向set开头的迭代器O(1)
end()返回指向set末尾的迭代器O(1)
insert(key)向set中插入元素keyO(logn)
erase(key)删除含有key的元素O(logn)
find(key)搜索与key一致的元素,并返回指向该元素的迭代器。没有与key一致的元素,则返回末尾end()O(logn)
     map集合以键与值的组合为元素,每个元素拥有一个键和一个值,集合以值作为排序标准。集合中各个元素的键唯一,不存在重复。map可以看作是一种能使用任意类型下标的关联式容器。比如我们可以用它来实现“从字符串中删除字符串”这类字典功能。

实例代码:

#include<iostream>#include<map>#include<string>using namespace std;void PRint(map<string,int> T){	map<string,int>::iterator it;	cout<<T.size()<<endl;	for(it=T.begin();it!=T.end();it++){		pair<string,int> item=*it;		cout<<item.first<<"-->"<<item.second<<endl;	}}int main(){	map<string,int> T;	T["red"]=32;	T["blue"]=688;	T["yellow"]=122;	T["blue"]+=312;		print(T);		T.insert(make_pair("zebra", 101010));	T.insert(make_pair("white", 0));		print(T);		pair<string, int> target = *T.find("red");	cout<<target.first<<"-->"<<target.second<<endl;	return 0;} 运行结果:

函数名功能复杂度
size()返回map中的元素数O(1)
clear()清空mapO(n)
begin()返回指向map开头的迭代器O(1)
end()返回指向map末尾的迭代器O(1)
insert(key,val)向map中插入元素(key,val)O(logn)
erase(key)删除含有key的元素O(logn)
find(key)搜索与key一致的元素,并返回指向该元素的迭代器。没有与key一致的元素,则返回末尾的end()O(logn)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选