C++ algorithm replace_if() 函式
示例
將包含字母“o”的汽車替換為“Toyota”
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;
}
自己動手試一試 »
定義和用法
replace_if()
函式將資料範圍內所有符合指定條件的元素替換為另一個值。
資料範圍由迭代器指定。
條件由一個函式指定,該函式以元素的值作為引數,並返回一個布林值:如果匹配條件,則返回 1;否則返回 0。
提示:要避免修改資料範圍並建立新資料範圍,可以使用 replace_copy_if()
函式。
語法
replace_if( iterator start, iterator end, function condition, <type> replace );
<type>
指的是範圍包含的資料型別。
引數值
引數 | 描述 |
---|---|
start | 必需。指向正在搜尋的資料範圍起點的迭代器。 |
end | 必需。指向正在搜尋的資料範圍終點的迭代器。將搜尋該位置之前的元素,但該位置的元素不被包含在內。 |
condition | 必需。一個函式,它以資料範圍中元素的值作為引數,並返回一個布林值。 |
replace | 必需。替換值。 |
相關頁面
在我們 資料結構教程 中瞭解更多關於資料結構的資訊。
在我們 迭代器教程 中瞭解更多關於迭代器的資訊。
在我們 演算法教程 中瞭解更多關於演算法的資訊。