vector的构造函数

360 阅读1分钟

在 C++ 标准库中,std::vector 是一个模板类,提供了多种构造函数,允许以不同的方式来创建和初始化向量。对于 std::vector<T>,这里有几种常用的构造函数:

  1. Default constructor: 创建一个空的 vector

    std::vector<T> v;
    
  2. Fill constructor: 创建一个包含 n 个复制自值 val 的元素的 vector

    std::vector<T> v(n, val);
    
  3. Range constructor: 根据迭代器范围 [first, last) 创建一个 vector

    std::vector<T> v(first, last);
    
  4. Copy constructor: 创建一个新的 vector,作为现有 vector 的副本。

    std::vector<T> new_v(old_v);
    
  5. Move constructor: 通过移动现有 vectorother)的内容来创建一个 vector,而不是复制它们。

    std::vector<T> v(std::move(other));
    
  6. Initializer list constructor: 用初始化列表创建 vector

    std::vector<T> v = {a, b, c, d};
    

在你的 get_prev_lt 函数中,使用了填充构造函数来创建一个特定大小(MAXLVL)的 vector,所有元素都被初始化为 nullptr

std::vector<SkiplistNode*> prev_nodes(MAXLVL, nullptr);

在这个例子中,TSkiplistNode* 类型,nMAXLVLvalnullptr。这意味着创建了一个大小为 MAXLVLvector,所有的元素都初始化为指向 nullptr 的指针。