Нарезка вектора в C ++ - PullRequest
0 голосов
/ 27 мая 2018

Есть ли эквивалент среза списка [1:] из Python в C ++ с векторами?Я просто хочу получить все, кроме первого элемента из вектора.

Оператор среза списка 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 ]

0 голосов
/ 27 мая 2018

Вы можете следовать приведенному выше ответу.Всегда лучше знать несколько способов.

int main
{
std::vector<int> v1= { 1,2,3};
std::vector<int> v2 = v1;
v2.erase( v2.begin() );
return 0;
}
0 голосов
/ 13 марта 2019

Я знаю, что уже поздно, но взгляните на valarray и его slice с.Если вы используете вектор какого-то типа NumericType, то стоит попробовать.

0 голосов
/ 27 мая 2018

Это легко сделать с помощью одного из std::vector конструкторов:

v2 = std::vector<int>(v1.begin() + 1, v1.end());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...