我有兩種或不同類型的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