Как выделить часть вектора в boost c ++

0

У меня есть тупой вопрос, который я хочу отрубить или просто выбрать часть векторных элементов.

Я использую boost-матрицу для вывода матрицы чисел, а boost имеет очень аккуратную функцию, matrix_column <> (matrix, index), чтобы выбрать столбец как вектор в boost-матрице.

Теперь мне нужно вырезать выбранный столбец на две части и выполнять разные вычисления. Я думаю, что мне нужен способ выбора элементов, таких как Matlab или R, т.е. Вектор (1: 5), возврат от 1 до 5 индексированных векторов.

Не могли бы вы, ребята, дать мне несколько советов или предложений? Прямо сейчас я думаю, что способ скопировать выбранную часть в новый вектор для обработки моих вычислений, не так эффективен.

  • 0
    inb4 кто-то упоминает std::valarray ...: S
Теги:
vector
boost

1 ответ

0
Лучший ответ

Просто передайте два итератора вектора (например, vec.begin() и vec.begin() + n) или даже boost: range

Это (пара итераторов) является то, как STL делает это, вы можете найти много примеров здесь.

  • 0
    итераторы очень мощные, спасибо Кироксас!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню