用C ++切片向量

问题描述 投票:5回答:3

是否有一个相似的列表切片[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}
c++ vector
3个回答
10
投票

这可以使用std::vector构造函数之一轻松完成:

v2 = std::vector<int>(v1.begin() + 1, v1.end());

1
投票

您可以按照上面的答案。总是更好地了解多种方式。

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

1
投票

我知道它已经晚了但是看看valarray及其slices。如果你正在使用某种NumericType的矢量,那么值得尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.