std::replace (tsz. std::replaces)
std::replace
egy STL algoritmus C++-ban, amely lehetővé teszi, hogy egy tartományban adott érték(ek)et lecserélj másik értékre.
std::replace(begin_iterátor, end_iterátor, keresett_érték, új_érték);
begin_iterátor
: a tartomány kezdeteend_iterátor
: a tartomány végekeresett_érték
: az az érték, amit keresünk és cserélni szeretnénkúj_érték
: az az érték, amire lecseréljük
vector
, list
, array
, string
stb.)
#include <iostream>
#include <vector>
#include <algorithm> // for std::replace
int main() {
std::vector<int> numbers = {1, 2, 3, 2, 4, 2, 5};
std::replace(numbers.begin(), numbers.end(), 2, 99); // 2-est lecseréljük 99-re
for (int n : numbers) {
std::cout << n << " ";
}
return 0;
}
Kimenet:
1 99 3 99 4 99 5
✅ Egy adott érték lecserélése másik értékre ✅ Egyszerűen és gyorsan használható (O(n) idő) ✅ Használható bármilyen iterátorral elérhető STL konténerrel:
vector
list
deque
array
string
stb.
std::replace_copy
algoritmust:std::replace_copy(source.begin(), source.end(), std::back_inserter(destination), keresett_érték, új_érték);
→ Ez új konténerbe írja az eredményt, az eredeti érintetlen marad.
👉 std::replace
= adott értékek lecserélése a tartományban 👉 Helyben dolgozik → az eredeti konténert módosítja 👉 Ha másolat kell → std::replace_copy
👉 Használható szinte bármilyen STL konténerre