У меня есть тупой вопрос, который я хочу отрубить или просто выбрать часть векторных элементов.
Я использую boost-матрицу для вывода матрицы чисел, а boost имеет очень аккуратную функцию, matrix_column <> (matrix, index), чтобы выбрать столбец как вектор в boost-матрице.
Теперь мне нужно вырезать выбранный столбец на две части и выполнять разные вычисления. Я думаю, что мне нужен способ выбора элементов, таких как Matlab или R, т.е. Вектор (1: 5), возврат от 1 до 5 индексированных векторов.
Не могли бы вы, ребята, дать мне несколько советов или предложений? Прямо сейчас я думаю, что способ скопировать выбранную часть в новый вектор для обработки моих вычислений, не так эффективен.
Просто передайте два итератора вектора (например, vec.begin()
и vec.begin() + n
) или даже boost: range
Это (пара итераторов) является то, как STL делает это, вы можете найти много примеров здесь.
std::valarray
...: S