кажется, среди алгоритмов, почему-то, действительно нету. Есть хорошая штука из C++23, если можешь себе позволить последние версии компиляторов.
надо писать код для случаев когда один вектор больше другого
проще некуда, итерируйся до std::min(v1.size(), v2.size()), если используешь индексы.
Что значит сложение?
Ну, геометрия, сложение векторов и получение одного вектора из суммы других. Сложение бывает по правилу треугольника и параллелограмма.
да, есть valarray
Ага std::vector::insert с парой итераторов
std::transform
Ну std::copy тогда уж Трансформ это как-то прям из пушки по воробьям
Что значит больше?
Да ладно. Если не нужна вся матричная арифметика с серьезными оптимизациями, то transform самое удобное.
Я подумал про сложение векторов как про их конкатенацию, что в целом то логично. Для этого не нужен никакой трансформ А оказывается, у ТСа очень интересное понимание данного термина
Понимание-то может и нормальное, но вектор использовался в математическом смысле.
Конкатенация тоже трансформом с back_inserter делается, что не так?
Но зачем? Трансформ он предназначен для заполнения нового диапазона преобразованными элементами исходного. А когда преобразовывать не надо, то есть std::copy
transform в C++ это некоторая поелеменстная операция над двумя контейнерами с получением третьего. Какую вы операцию заюзаете - это ваш выбор.
Но вот юзать "пустое" преобразование в некотором роде бессмысленно А так это и так понятно, что можно делать и через трансформ
Так это еще и удобно и читабельно - юзать transform.
Да всё прав он, с std::copy конкатенация проще будет делаться, просто я душный
одинаково. А выбор алгоритма определяется логикой того, что именно ты в коде делаешь.
А чем std::copy нечитабельно и неудобно?) Вот у меня бы вызвал вопросы код: std::transform( src.cbegin(), src.cend(), std::back_insterter(dst), [] (const auto& e) { return e; }); Ну вот типа зачем нам вот этот пустой функтор? А когда написано так: std::copy( src.cbegin(), src.cend(), std::back_insterter(dst)); То тут сразу понятны намерения -- надо просто скопировать элементы одного диапазона в другой
А выбор алгоритма определяется логикой того, что именно ты в коде делаешь.
Да нет, видимо про сложение матриц речь
Обсуждают сегодня