std::is_sorted
是 C++ 標準庫
std::is_sorted
可以用于任何可迭代的容器,例如數組(C 風格或 C++ 風格)、向量(std::vector
)、列表(std::list
)等。只要這些容器提供了正確的迭代器接口,std::is_sorted
就可以工作。std::is_sorted
可以處理各種類型的元素,包括基本數據類型(如 int
、float
、double
等)和自定義類型。但是,你需要確保自定義類型提供了合適的比較操作符(如 <
),以便 std::is_sorted
能夠正確地比較元素。std::is_sorted
使用 <
操作符來比較元素。如果你想使用其他比較方式,可以將自定義比較函數作為第三個參數傳遞給 std::is_sorted
。比較函數應該接受兩個參數并返回一個布爾值,表示第一個參數是否小于第二個參數。下面是一個使用 std::is_sorted
的示例,展示了如何在不同類型的數組上使用它:
#include<iostream>
#include<vector>
#include <list>
#include<algorithm>
int main() {
// 使用 C 風格數組
int c_array[] = {1, 2, 3, 4, 5};
std::cout << "C-style array is sorted: "<< std::boolalpha<< std::is_sorted(std::begin(c_array), std::end(c_array))<< std::endl;
// 使用 C++ 風格數組(std::vector)
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "std::vector is sorted: "<< std::boolalpha<< std::is_sorted(vec.begin(), vec.end())<< std::endl;
// 使用 C++ 風格數組(std::list)
std::list<int> lst = {1, 2, 3, 4, 5};
std::cout << "std::list is sorted: "<< std::boolalpha<< std::is_sorted(lst.begin(), lst.end())<< std::endl;
return 0;
}
這個示例中,我們使用了 C 風格數組、std::vector
和 std::list
,并且 std::is_sorted
在所有這些情況下都能正確地工作。