【发布时间】:2020-07-22 12:05:13
【问题描述】:
为了实现二叉搜索树,我想知道为什么我们在 std::pair 中将 Const 放在 K 之前?
template<class K,class V>
class BST {
public:
class Node {
public:
pair<const K, V> data; // pair < data_type1, data_type2 > Pair_name;
unique_ptr<Node> left; // Create a unique_ptr object through raw pointer
unique_ptr<Node> right;
unique_ptr<Node> parent;
Node(const K& k, const V& v): //constructor
data{std::move(k),std::move(v)}, right(nullptr),left(nullptr),parent(nullptr)
{
}
~Node() noexcept = default;
【问题讨论】:
-
当您希望对象保持不变时,您输入了
const?您在问题中所说的“我们”是指谁? -
节点在树形结构中的位置取决于
k的值。如果您要使用某个键x将节点插入现有树,然后将其键更改为y(不使用BST方法),则该节点可能位于不正确的位置。
标签: c++ data-structures stl