replace_copy_if()
C++ algorithm replace_copy_if() funksiyasi
Misol
Tarkibida "o" harfi bor qiymatlar "Toyota" bilan almashtirilgan vektor nusxasini yarating:
bool has_o(string item) {
return item.find('o') != string::npos;
}
int main() {
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
vector<string> newcars(4);
replace_copy_if(cars.begin(), cars.end(), newcars.begin(), has_o, (string)"Toyota");
for (string car : newcars) {
cout << car << "\n";
}
return 0;
}
O‘zingiz sinab ko‘ring »
Ta’rif va qo‘llanilishi
replace_copy_if() funksiyasi ko‘rsatilgan shartga mos keladigan barcha elementlari boshqa qiymat bilan almashtirilgan ma’lumotlar oralig‘i nusxasini yaratadi.
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.
Sintaksis
replace_copy_if(iterator start, iterator end, iterator destination, function condition, <type> replace);
<type> oraliqdagi ma’lumotlarning tipini bildiradi.
Parametr qiymatlari
| Parametr | Tavsif |
|---|---|
| start | Majburiy. Ma’lumotlar oralig‘ining boshini ko‘rsatuvchi iterator. |
| end | Majburiy. Ma’lumotlar oralig‘ining oxirini ko‘rsatuvchi iterator. Shu pozitsiyagacha bo‘lgan elementlar qamrab olinadi, lekin aynan shu pozitsiyadagi element qamrab olinmaydi. |
| destination | Majburiy. Ma’lumotlar nusxalanadigan ma’lumotlar oralig‘ining boshini ko‘rsatuvchi iterator. |
| condition | Majburiy. Ma’lumotlar oralig‘idagi element qiymatini argument sifatida qabul qiladigan va boolean qiymat qaytaradigan funksiya. |
| replace | Majburiy. O‘rniga qo‘yiladigan qiymat. |
Texnik tafsilotlar
| Qaytaradi: | Maqsad (destination) ma’lumotlar oralig‘ining oxirini ko‘rsatuvchi iterator. |
|---|
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.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
