Bir vektörü filtrelemeye çalışıyorum, bu nedenle yalnızca belirli bir değer içeriyor.Bir yüklemeye ek bir parametre iletebilir misiniz?
örn. Vektörün yalnızca "abc" değerinin öğelerini içerdiğinden emin olun.
Şu an bunu remove_copy_if
ile elde etmeye çalışıyorum.
Std'nin algoritmalarından birini kullanırken bir yüklemeye ek bir parametre iletmenin herhangi bir yolu var mı?
std::vector<std::string> first, second;
first.push_back("abc");
first.push_back("abc");
first.push_back("def");
first.push_back("abd");
first.push_back("cde");
first.push_back("def");
std::remove_copy_if(first.begin(), first.end(), second.begin(), is_invalid);
Ben bir yüklem olarak aşağıdaki işlevi geçmesine umuyorum ama bu sadece
remove_copy_if
ve sonraki tarafından muayene ediliyor geçerli değerini karşılaştırarak sona ereceğini daha muhtemel görünüyor.
bool is_invalid(const std::string &str, const std::string &wanted)
{
return str.compare(wanted) != 0;
}
Bu yanlış anladığım için bir fikrim var, bu nedenle herhangi bir öneriniz için teşekkür ederiz!
Teşekkür
Sadece merak - sadece bir vektörü ne için kullanıyorsunuz? – Zane
Örneğimi olabildiğince basit hale getirmeye çalıştım, bu yüzden anlamlı oldu :) Bu konuda yaptığım şey, belirli bir desene (regex ile) uyan bir vektörün elemanlarını kaldırmaktı. – noko