私はstd::vector
の2つまたは異なるタイプを持っています。一般的な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})
のプッシュバック対std::vector<data>
場合s.push_back({1,2,3});
'{1}'と{1,2,3}はどうやって決定されますか?どのようにベクトル*を*で埋めるかを決める方法は非常に重要です。 – jwimberley
std :: vectorとstd :: vector は、コンパイラの決定に役立つでしょう –
@vanta '{1,2,3}'ではなく '{7,8,9}'でしょうか? – Yakk