C++ STL std::replace_if() 函數
replace_if() 函數是算法頭的庫函數,用於根據給定的一元函數替換給定範圍內的值,該函數應接受範圍內的元素作為參數並返回應可轉換為 bool 的值(如0 或 1),它返回的值表示給定的元素是否可以被替換?
注意:使用 replace_if() 函數 - 包括<algorithm>
標題或者您可以簡單使用<bits/stdc++.h>
頭文件。
std::replace_if() 函數的語法
std::replace_if( iterator start, iterator end, unary_function, const T& new_value);
參數:
iterator start, iterator end
- 這些是指向容器中開始和結束位置的迭代器,我們必須在那裏運行替換操作。unary_function
- 是一個一元函數,將對給定範圍內的所有元素執行條件檢查,通過條件的元素將被替換。new_value
- 要分配的值而不是 old_value。
返回值: void
- 它返回注意。
例:(替換偶數)
//function to check EVEN value bool isEVEN(int x) { if (x % 2 == 0) return 1; else return 0; } Input: vector<int> v{ 10, 20, 33, 23, 11, 40, 50 }; //replacing all EVEN elements with -1 replace_if(v.begin(), v.end(), isEVEN, -1); Output: -1 -1 33 23 11 -1 -1
用於演示 std::replace_if() 函數使用的 C++ STL 程序
在這個程序中,我們有一個向量並用 -1 替換所有偶數。
//C++ STL program to demonstrate use of
//std::replace_if() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//function to check EVEN value
bool isEVEN(int x)
{
if (x % 2 == 0)
return 1;
else
return 0;
}
int main()
{
//vector
vector<int> v{ 10, 20, 33, 23, 11, 40, 50 };
//printing vector elements
cout << "before replacing, v:";
for (int x:v)
cout << x << " ";
cout << endl;
//replacing all EVEN elements with -1
replace_if(v.begin(), v.end(), isEVEN, -1);
//printing vector elements
cout << "after replacing, v:";
for (int x:v)
cout << x << " ";
cout << endl;
return 0;
}
輸出
before replacing, v:10 20 33 23 11 40 50 after replacing, v:-1 -1 33 23 11 -1 -1
參考:C++ std::replace_if()
相關用法
- C++ std::replace_copy_if()用法及代碼示例
- C++ std::replace_copy()用法及代碼示例
- C++ std::replace()用法及代碼示例
- C++ std::reverse()用法及代碼示例
- C++ std::remove_cv用法及代碼示例
- C++ std::remove_const用法及代碼示例
- C++ std::remove_volatile用法及代碼示例
- C++ std::reverse_copy用法及代碼示例
- C++ std::rank用法及代碼示例
- C++ std::rotate_copy()用法及代碼示例
- C++ std::rotate()用法及代碼示例
- C++ std::max()用法及代碼示例
- C++ std::string::push_back()用法及代碼示例
- C++ std::less_equal用法及代碼示例
- C++ std::is_member_object_pointer模板用法及代碼示例
- C++ std::copy_n()用法及代碼示例
- C++ std::string::insert()用法及代碼示例
- C++ std::is_sorted_until用法及代碼示例
- C++ std::iota用法及代碼示例
- C++ std::numeric_limits::digits用法及代碼示例
注:本文由純淨天空篩選整理自 std::replace_if() function with example in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。