CppCoreGuidelines C.102 赋予容器移动操作
27 November 2022
C.102: Give a container move operations
理由
容器很容易变得很大,如果没有移动构造函数和复制构造函数,移动容器对象会变得很耗计算资源。因此,人们倾向于使用指针操作容器,但是这样就会遇到内存管理的问题。
例子
Sorted_vector<int> read_sorted(istream& is) { vector<int> v; cin >> v; // assume we have a read operation for vectors Sorted_vector<int> sv = v; // sorts return sv; }
我们应该允许用户认为返回一个符合标准的容器是很节省资源的。只有我们定义的容器类实现了移动构造函数,才能为用户提供这种保证。