- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 主页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <原子>
- C++ 库 - <复杂>
- C++ 库 - <异常>
- C++ 库 - <功能>
- C++ 库 - <限制>
- C++ 库 - <语言环境>
- C++ 库 - <内存>
- C++ 库 - <新>
- C++ 库 - <数字>
- C++ 库 - <正则表达式>
- C++ 库 - <stdexcept>
- C++ 库 - <字符串>
- C++ 库 - <线程>
- C++ 库 - <元组>
- C++ 库 - <类型信息>
- C++ 库 - <实用程序>
- C++ 库 - <valarray>
C++ 内存库 -owner_less
描述
它定义了在shared_ptr和/或weak_ptr对象之间执行基于所有者的比较的函数对象。
宣言
以下是 std::owner_less 的声明。
template <class Ptr> struct owner_less; template <class T> struct owner_less<shared_ptr<T>>; template <class T> struct owner_less<weak_ptr<T>>;
C++11
template <class Ptr> struct owner_less; template <class T> struct owner_less<shared_ptr<T>>; template <class T> struct owner_less<weak_ptr<T>>;
参数
Ptr - 它是一个托管指针。
返回值
没有任何
例外情况
noexcep - 它不会抛出任何异常。
例子
在下面的示例中解释了 std::owner_less。
#include <iostream> #include <memory> #include <set> int main () { int * p = new int (10); std::shared_ptr<int> a (new int (20)); std::shared_ptr<int> b (a,p); std::set < std::shared_ptr<int> > value_based; std::set < std::shared_ptr<int>, std::owner_less<std::shared_ptr<int>> > owner_based; value_based.insert (a); value_based.insert (b); owner_based.insert (a); owner_based.insert (b); std::cout << "value_based.size() is " << value_based.size() << '\n'; std::cout << "owner_based.size() is " << owner_based.size() << '\n'; delete p; return 0; }
让我们编译并运行上面的程序,这将产生以下结果 -
value_based.size() is 2 owner_based.size() is 1
内存.htm