知识链.....让我能学到好多东西
2010-08-12 16:16 Aga.J 阅读(285) 评论(0) 编辑 收藏 举报今天看《编程珠玑》的珍珠字符串,书里使用了C++ STL的set模板就很清晰,且很简单的完成了一项功能---对输入的字串组进行不重复的保存,并且有序输出,于是我就傻傻的在vc上跟着书里的代码敲了下面的代码
set<string> s;
set<string>::iterator iterator;
string t;
while(cin >> t)
{
if(t=="ok") break;
s.insert(t);
}
for(iterator=s.begin();iterator!=s.end();iterator++)
{
cout<<*iterator<<" ";
}
cin>>t;
运行后看到set容器帮我完成得很好,不禁想了解了解set容易,所有去了C++ Referencehttp://www.cplusplus.com/reference/stl/set/看了一下set容器的介绍,得到下面的知识:
//根据C++ Reference
//set是一种关联性的容器,存储唯一的元素(要保存可重复的元素,则使用multiset)并且把这些元素作为key
//所谓的关联容器是一种可以通过key来访问对应元素的容器,而顺序容器,则通过元素间的相对或者绝对位置来找到元素
//stl中set是由二叉搜索树实现的!
//map也是一种关联性容器,它也通过key来访问元素,但是不是使用元素来作为key,而是使用其他key来映射到value
//元素的组织遵循strict weak order
看到最后一点strict weak order,貌似在《离散数学》里面学过,就维基百科了一下strict weak order,http://en.wikipedia.org/wiki/Strict_weak_ordering 看了里面的介绍后,更加发现我《离散数学》根本就没学好。。。。悲剧。。
//根据维基百科的解释
//strict weak order是一种在一个strict partial order的集合S上的元关系“<”,strict partial order是指不自反,不对称,可传递的关系
//strict weak order包括下面属性,假设x,y在集合s里
//1 对于任意x,不存在x<x
//2 对于任意x!=y,如果x<y,那么不存在x>y
//3 对于任意x,y,z,如果x<y且y<z,那么x<z
//4 对于任意x,y,z,如果x和y不可比较,且y和z不可比较,那么x和z不可比较。
//在维基百科里还提到了总序,这也是《离散数学》里所学的,然后就又可以再维基百科一下总序了
然后就。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。一个知识就能牵出一大堆知识。。。。。。。。。。。
作者:Aga.J
出处:http://www.cnblogs.com/aga-j
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
个人学习笔记仅供本人记录知识所用,不属发表性文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步