- 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