E
Merhaba,
Fikir vermesi açısından aşağıdakilere göz atabilirsin. Ben vector ile örnekler yazıyorum sen istediğin şekilde kullanır değiştirirsin.
algorithm başlık dosyası içerisinde;
1-) "replace" adlı method
void STL_replace(vector<int>& vArg1, int sourceNumber, int destNumber)
{
/*
* Parametre ile verilen degerin yine parametre ile verilen deger ile degistirilmesi.
*/
replace(begin(vArg1), end(vArg1), sourceNumber, destNumber);
};
2-) "replace_if" adlı method
void STL_replace_if(vector<int>& vArg1, int sourceNumber, int destNumber)
{
/*
* Predicate ile belirtilen parametresindeki sartlara uyanlarin isleme sokulmasi ve degistirilmesi.
*/
replace_if(begin(vArg1), end(vArg1), [sourceNumber](int i){return i == sourceNumber; }, destNumber);
};
3-) "remove" adlı method
void STL_remove(vector<int>& vArg, int removeArg)
{
/*
* Belirtilen degerin belirtilen hedef listeden remove ile cikarilmasi.
* remove otomatik olarak degerin yerini silmediginden vector sablonunun
* erase fonksiyonu kullanilmistir.
*/
vArg.erase(remove(begin(vArg), end(vArg), removeArg), end(vArg));
/*remove_if(begin(vArg), end(vArg), [removeArg](int i)
{
if (removeArg != 6)
return i;
return 0;
});*/
};
4-) "remove_if" adlı fonksiyon
void STL_remove_if(vector<int>& vArg, int removeArg)
{
/*
* Belirtilen degerin belirtilen hedef listeden remove'un Predicate sartlari ile cikarilmasi.
* remove/remove_if otomatik olarak degerin yerini silmediginden vector sablonunun
* erase fonksiyonu kullanilmistir.
* Burada removeArg sinir olarak kabul edilir ve bu parametreden buyuk olanlar silinir.
*/
vArg.erase(remove_if(begin(vArg), end(vArg), [removeArg](int i){ return i > removeArg; }), end(vArg));
};
Saygılarımla.