Ben std::string
parametre olarak belirli bir tip (diyelim ) ile bir kap alır bir işlevi yapmak herhangi bir yolu var mı
void foo(const std::container<std::string> &cont)
{
for(std::string val: cont) {
std::cout << val << std::endl;
}
}
ve her stl konteyneri için girdi olarak çağır? yukarıdaki gibi?
std::set<std::string> strset;
std::vector<std::string> strvec;
std::list<std::string> strlist;
foo(strset);
foo(strvec);
foo(strlist);
2
Evet, buna şablon fonksiyonu denir. ;)
—
Ulrich Eckhardt
Genellikle bir çift yineleyiciyi geçmek daha iyidir (sırasıyla kabın başlangıcını ve sonunu bir kez temsil eder). Yineleyiciler işlevin gereksinimlerini karşıladığı sürece, (genellikle bazı istisnalar vardır) ne tür kaplardan elde edildikleri önemli değildir.
—
Peter