Предположим, что я хочу назначить список из трех чисел вектору v, так что v [0] - это первый элемент списка, v [1] - второй и v [2] в третьих. я узнал, что для стандартного векторного шаблона есть правопреемником библиотека повышенияНазначьте несколько чисел вектору boost
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
using namespace boost::assign; // bring 'operator+=()' into scope
int main {
vector<int> values;
values += 1,2,3,4,5,6,7,8,9; // insert values at the end of the container
}
Теперь, когда я пытаюсь сделать это для повышающего вектора
boost::numeric::ublas::vector<int> values
values += 1,2,3,4,5,6,7,8,9;
он говорит мне «ни один оператор«+ = "соответствует этим операндам. Как это решить с помощью векторов повышения? (Я предполагаю, что это должно быть что-то простое, но я слишком глупый, чтобы это увидеть)
Это ужасный синтаксис. для меня это не очень хорошо. –
Вы действительно прочитали [документацию] (http://www.boost.org/doc/libs/1_55_0/libs/assign/doc/index.html#extensions)? – KillianDS
«Я предполагаю, что это должно быть что-то простое, но я слишком глуп, чтобы его увидеть» - вам придется написать перегрузку «operator + =()», которая принимает соответствующие аргументы и возвращает соответствующий тип, подходящий для цепочки. Поскольку вы сочли некоторое понимание «boost», чтобы сделать это для вышеупомянутого, я ожидаю, что это может быть не так просто, как вы думаете. Плюс, как уже сказал Кароли, это ужасный синтаксис - должен быть более интуитивный способ сделать это. – thokra