代码之家  ›  专栏  ›  技术社区  ›  Wizard

C++中矢量的切分

  •  6
  • Wizard  · 技术社区  · 6 年前

    有等价的列表切片吗 [1:] 从C++中的Python中得到向量?我只想从向量中得到除第一个元素以外的所有元素。

    python的列表切片运算符:

    list1 = [1, 2, 3]
    list2 = list1[1:]  
    
    print(list2) # [2, 3]
    

    C++期望结果:

    std::vector<int> v1 = {1, 2, 3};
    std::vector<int> v2;
    v2 = v1[1:];
    
    std::cout << v2 << std::endl;  //{2, 3}
    
    3 回复  |  直到 6 年前
        1
  •  11
  •   DimChtz    6 年前

    这可以很容易地用 std::vector 施工人员:

    v2 = std::vector<int>(v1.begin() + 1, v1.end());
    
        2
  •  1
  •   Sadaananth Anbucheliyan    6 年前

    你可以按照上面的答案来做。了解多种方法总是更好。

    int main
    {
    std::vector<int> v1= { 1,2,3};
    std::vector<int> v2 = v1;
    v2.erase( v2.begin() );
    return 0;
    }
    
        3
  •  1
  •   Adrian    5 年前

    我知道很晚了,不过看看 valarray 和它的 slice 如果你使用的是某种向量 NumericType 那就值得一试。