`all_of`, `any_of` 和 `none_of` 是C++標(biāo)準(zhǔn)模板庫 (STL) 中的一些算法,它們用于檢查容器中的元素是否滿足某個(gè)特定條件。這些算法的工作方式是接受一對(duì)迭代器(定義了一個(gè)范圍)和一個(gè)謂詞(一個(gè)返回bool值的函數(shù)或者函數(shù)對(duì)象)。它們分別定義在 `` 頭文件中。
1. **all_of**: 檢查范圍內(nèi)的所有元素是否都滿足某個(gè)條件。
std::vector<int> v {1, 2, 3, 4, 5};
bool allEven = std::all_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// allEven will be false because not all elements are even
2. **any_of**: 檢查范圍內(nèi)的任何元素是否滿足某個(gè)條件。
std::vector<int> v {1, 2, 3, 4, 5};
bool anyEven = std::any_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// anyEven will be true because at least one element (2 and 4) is even
3. **none_of**: 檢查范圍內(nèi)的所有元素是否都不滿足某個(gè)條件。
std::vector<int> v {1, 2, 3, 4, 5};
bool noneEven = std::none_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// noneEven will be false because some elements (2 and 4) are even
這些函數(shù)對(duì)于檢查滿足某個(gè)條件的元素非常有用,可以使代碼更加簡(jiǎn)潔和易讀。