特定のタイプのコンテナをstd::string
パラメータとして受け取る関数を作成する方法はありますか?
void foo(const std::container<std::string> &cont)
{
for(std::string val: cont) {
std::cout << val << std::endl;
}
}
そして、入力としてすべてのタイプのstlコンテナーに対してそれを呼び出しますか?上記のように?
std::set<std::string> strset;
std::vector<std::string> strvec;
std::list<std::string> strlist;
foo(strset);
foo(strvec);
foo(strlist);
2
はい、それはテンプレート関数と呼ばれています。;)
—
Ulrich Eckhardt
多くの場合、1組のイテレーター(それぞれコンテナーの最初と最後の1つを表す)を渡す方がよいと考えられています。イテレーターが関数の要件を満たしている限り、イテレーターが取得されたコンテナーのタイプは関係ありません(多くの場合、いくつかの例外があります)。
—
ピーター