replace_if()

C++ algorithm replace_if() funksiyasi

❮ Algoritm funksiyalari


Misol

Tarkibida "o" harfi bor avtomobillarni "Toyota" bilan almashtiring:

bool has_o(string item) {
  return item.find('o') != string::npos;
}

int main() {
  vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
  replace_if(cars.begin(), cars.end(), has_o, (string)"Toyota");
  for (string car : cars) {
    cout << car << "\n";
  }

  return 0;
}
O‘zingiz sinab ko‘ring »

Ta’rif va qo‘llanilishi

replace_if() funksiyasi ma’lumotlar oralig‘idagi ko‘rsatilgan shartga mos keladigan barcha elementlarni boshqa qiymat bilan almashtiradi.

Ma’lumotlar oralig‘i iteratorlar orqali belgilanadi.

Shart funksiya orqali belgilanadi: u element qiymatini argument sifatida qabul qiladi va boolean qiymat qaytaradi — shart bajarilsa 1, bajarilmasa 0.

Maslahat: Ma’lumotlar oralig‘ini o‘zgartirmasdan, uning o‘rniga yangi ma’lumotlar oralig‘ini yaratish uchun replace_copy_if() funksiyasidan foydalanishingiz mumkin.

Sintaksis

replace_if( iterator start, iterator end, function condition, <type> replace );

<type> oraliqdagi ma’lumotlarning tipini bildiradi.

Parametr qiymatlari

Parametr Tavsif
start Majburiy. Qidiruv olib boriladigan ma’lumotlar oralig‘ining boshini ko‘rsatuvchi iterator.
end Majburiy. Qidiruv olib boriladigan ma’lumotlar oralig‘ining oxirini ko‘rsatuvchi iterator. Qidiruv shu pozitsiyagacha bo‘lgan elementlar orasida olib boriladi, lekin aynan shu pozitsiyadagi element qamrab olinmaydi.
condition Majburiy. Ma’lumotlar oralig‘idagi element qiymatini argument sifatida qabul qiladigan va boolean qiymat qaytaradigan funksiya.
replace Majburiy. O‘rniga qo‘yiladigan qiymat.

Tegishli sahifalar

Ma’lumotlar tuzilmalari haqida ma’lumotlar tuzilmalari darsligimizda batafsil o‘qing.

Iteratorlar haqida iteratorlar darsligimizda batafsil o‘qing.

Algoritmlar haqida algoritmlar darsligimizda batafsil o‘qing.


❮ Algoritm funksiyalari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!