Рассмотрим std::vector<T>
для некоторого типа T
. Я получаю указатель на такой тип в функцию, а также экземпляр T
; t
сказать.
Моя функция выглядит так:
void bar(std::vector<T>* foo, const T& t)
{
foo->clear();
foo->push_back(t);
}
Есть ли способ написать тело функции в одном выражении? *foo = t;
не работает из-за отсутствия соответствующего оператора присваивания. Я также думал об использовании
foo->assign(&t, &t + 1);
Но это кажется капризным
Я использую C ++ 11.
2 ответа
Конечно, вы можете переназначить:
*foo = {t};
Есть ли причина, по которой вы не можете просто использовать другие assign()
функции-члена std::vector<>
?
void bar(std::vector<T>* foo, const T& t)
{
foo->assign(1, t);
}
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.