C++ algorithm replace_copy_if() 函式
示例
建立一個向量的副本,其中包含字母 "o" 的值將被替換為 "Toyota"
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;
}
自己動手試一試 »
定義和用法
replace_copy_if()
函式建立一個數據範圍的副本,其中所有匹配指定條件的元素都將被替換為另一個值。
資料範圍由迭代器指定。
條件由一個函式指定,該函式以元素的值作為引數,並返回一個布林值:如果匹配條件,則返回 1;否則返回 0。
語法
replace_copy_if(iterator start, iterator end, iterator destination, function condition, <type> replace);
<type>
指的是範圍包含的資料型別。
引數值
引數 | 描述 |
---|---|
start | 必需。指向資料範圍開始位置的迭代器。 |
end | 必需。指向資料範圍結束位置的迭代器。將包含此位置之前的元素,但不包含此位置的元素。 |
destination | 必需。指向將要複製資料的起始位置的迭代器。 |
condition | 必需。一個函式,它以資料範圍中元素的值作為引數,並返回一個布林值。 |
replace | 必需。替換值。 |
技術詳情
返回 | 指向目標資料範圍結束位置的迭代器。 |
---|
相關頁面
在我們 資料結構教程 中瞭解更多關於資料結構的資訊。
在我們 迭代器教程 中瞭解更多關於迭代器的資訊。
在我們 演算法教程 中瞭解更多關於演算法的資訊。