我有两种或不同类型的std::vector
。如何编写一般std :: vector push_back的模板函数?
struct data{
int a;
int b;
int c;
};
std::vector<int> val1;
std::vector<data> val2;
现在我想写一个模板功能,将两个val1
和val2
工作。
template<typename t>
void my_function(t s){
s.push_back(...); // based on s i.e it could be std::vector<int> or std::vector<data>
}
my_function<std::vector<int>>(val1);
my_function<std::vector<data>>(val2);
我现在面临的问题是我怎么能在代码中,如果类型是std::vector<int>
做俯卧撑的s.push_back({1})
回VS如果std::vector<data>
做s.push_back({1,2,3});
如何确定“{1}”和“{1,2,3}”?你如何确定你用*填充向量*是非常重要的。 – jwimberley
不太确定,但希望std ::向量和std ::向量将帮助编译器确定 –
@vanta为什么不是'{1,2,3}'而不是'{7,8,9}'? – Yakk