Home > Article > Backend Development > Which functions in STL can use C++ function objects?
STL provides several functions that accept C function objects as parameters and are used to operate collections or perform specific transformations. These functions include: transform(): Transforms the elements of the collection using the specified function object. for_each(): Performs an operation on each element in the collection, using the specified function object. sort(): Sorts the collection according to the specified comparison function object. find_if(): Find elements that meet the specified conditions (defined by the function object). count_if(): Counts the number of elements that meet the specified conditions (defined by the function object).
Functions in STL that can use C function objects
There are several functions in STL (Standard Template Library) that can accept C function objects as parameters. These functions are typically used to manipulate collections or perform specific transformations. Here are a few common examples:
Practical case
The following code example demonstrates how to use the transform() function object to convert a number to a string:
#include <algorithm> #include <iostream> #include <vector> #include <string> using namespace std; int main() { // 创建一个数字向量 vector<int> numbers = {1, 2, 3, 4, 5}; // 定义一个将数字转换为字符串的函数对象 struct IntToString { string operator()(int num) const { return to_string(num); } }; // 使用 transform() 将数字向量转换为字符串向量 vector<string> strings; transform(begin(numbers), end(numbers), back_inserter(strings), IntToString()); // 打印字符串向量 for (const auto &str : strings) { cout << str << endl; } return 0; }
In this example, the IntToString function object defines an operator () that converts an integer to a string. The transform() function uses this as a transformation function to convert a numeric vector into a string vector.
The above is the detailed content of Which functions in STL can use C++ function objects?. For more information, please follow other related articles on the PHP Chinese website!