我决定在C ++中实现Python的any。我使用模板来允许传递多种类型的数据,而不是多次重载该函数。这是我第一次使用模板,因此我非常希望获得有关模板使用情况的反馈。我对引用和指针也很陌生,所以我也想对我对它们的使用提出一些批评。当然,桌上还有其他东西值得赞赏。

编写此程序时,我意识到std::any_of存在。所以,是的,我确实知道已经有一个内置的方法。

函数:

main.cpp

#ifndef ANY_HPP_INCLUDED
#define ANY_HPP_INCLUDED

/**
 * @author Ben Antonellis
**/

#include <vector>
#include <iostream>

/**
 * Returns True if any of the elements meet the callback functions parameters.
 * 
 * @param elements - A list of elements.
 * @param callback - Callback function to invoke on each element.
 * 
 * @return bool - True if parameters are met, False otherwise.
**/
template <typename List, typename Function>
bool any(List &elements, Function *callback) {
    for (auto element : elements) {
        if (callback(element)) {
            return true;
        }
    }
    return false;
}

#endif


如果要编译和运行,下面是我正在使用的脚本进行编译和运行此程序。

评论

与主题无关,但请注意,就我而言,cppreference是比cplusplus.com更新的(通常)是社区驱动的高质量文档。
同意,我几乎专门使用cppreference。它不是很漂亮,但是可以完成工作:)