向量emplace_back包含另一个向量(部分向量)的用法(C++11)

vector emplace_back usage (C++11) of containing another vector (partial vector)

本文关键字:向量 emplace 用法 C++11 包含 另一个 back      更新时间:2023-10-16

有没有人知道这种emplace_back用法的相关参考资料(C++11)?

void func(const vector <int>  &A){
    vector <vector <int> > B;
    B.emplace_back(A.cbegin() , A.cend());  // emplace vector A directly
}

我不确定您的真正问题是什么,但是您显示的代码在B中就地插入了一个新的向量。新向量通过调用其构造函数 (4) 进行初始化,该构造函数将两个参数A.cbegin() , A.cend()

您可以将其视为

B.push_back(std::vector<int>(A.cbegin() , A.cend()));

在要求任何进一步的参考之前,你最好在谷歌或 cppreference.com 上搜索它们。

  • 对于emplace_back():http://en.cppreference.com/w/cpp/container/vector/emplace_back
  • 对于cbegin()/cend()(自 C++11 起):它们与begin()/end() http://en.cppreference.com/w/cpp/container/vector/begin 相同