将矢量分配给单个元素

时间:2017-02-28 16:45:57

标签: c++ c++11 stdvector

对某些类型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 个答案:

答案 0 :(得分:10)

当然,你可以重新分配:

*foo = {t};

答案 1 :(得分:4)

您是否有理由不能使用std::vector<> 其他 assign()会员功能?

void bar(std::vector<T>* foo, const T& t)
{
    foo->assign(1, t);
}