对某些类型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。
答案 0 :(得分:10)
当然,你可以重新分配:
*foo = {t};
答案 1 :(得分:4)
您是否有理由不能使用std::vector<>
其他 assign()
会员功能?
void bar(std::vector<T>* foo, const T& t)
{
foo->assign(1, t);
}