您的位置:首页 > 编程语言 > C语言/C++

C++基础::STL中的定理

2015-11-16 11:27 281 查看

C++标准库中凡”凡必须返回两个value”的函数都使用pair对象

我们以set的插入成员函数
insert
为例加以说明,因为set容器是一个自动排序的容器,set容器要求,插入元素要返回插入的位置以插入是否成功两个属性:

set<int> iset;
...

pair<set<int>::iterator, bool> res = iset.insert(1);
// 这样的写法并无太多实际的意义,不太会直接操纵这样一个pair对象
// 或者用auto 关键字
// 或者直接 if(iset.insert(1))
if (res.second)
cout << "1 inserted" << endl;
else
cout << "1 already exists" << endl;


STL容器提供的是“value semantic”而不是“reference semantic”

除了效率的问题之外,
value semantic
的一大问题是无法在数个不同的容器中管理同一份对象。那么我们该如何在STL容器中实现
reference semantic
,这个问题可参看<C++STL::两种方式实现STL容器的reference语义>

empty

对于所有的标准库类型其empty()成员函数都是一种查询操作,用以询问是否容器为空,因此返回一个
bool
类型变量,而不是一种清零操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: