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

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类型变量,而不是一种清零操作。

你可能感兴趣的:(C++基础::STL中的定理)