一、vector排序sort函數
#include <vector>
#include <algorithm>
// sort vector using the sort function
std::vector vec = {5,2,9,1,5};
std::sort(vec.begin(), vec.end()); // sort in ascending order
sort函數是C++ STL提供的基本排序算法,是一個非常常用的函數。它將一個容器中的元素按照某種順序重新排列。sort函數默認以升序對容器進行排序,如果需要進行降序排序則需要自定義條件,下面會介紹到。sort的時間複雜度為O(nlogn),其中n為容器中的元素個數。sort函數可以對各種STL容器(如vector,list等)進行排序,因為支持隨機訪問迭代器。
二、vectorsort排序
除了sort函數外,vector提供的sort方法也可以對容器進行排序,方法如下:
std::vector vec = {5,2,9,1,5};
vec.sort(); // sort in ascending order
vectorsort是vector類提供的排序方法,只能用於vector容器本身,相比sort函數,vectorsort使用更加簡單,但是效率不如sort,而且只能對vector容器進行排序。
三、vector排序sort頭文件
sort函數是算法頭文件algorithm中提供的函數,所以在使用sort函數之前需要在程序中添加頭文件
#include <vector> #include <algorithm>
四、vector排序
vector是一個非常常用的STL容器,提供了很多基本的操作。和其他容器一樣,vector也支持排序操作。我們可以使用sort函數對vector進行排序,方法如下所示:
std::vector vec = {5,2,9,1,5};
std::sort(vec.begin(), vec.end()); // sort in ascending order
需要注意的是,在使用sort對vector排序時,需要傳入迭代器,首指針指向vector的開頭,尾指針指向vector的結尾,這是sort函數的基本使用方法,如果需要自定義條件進行排序,也需要在sort函數中傳入自定義比較函數。
五、vector排序函數sort
sort函數是C++ STL提供的基本排序算法,它支持排序各種STL的容器,如vector,list等。在使用sort函數進行排序時,需要傳入迭代器首尾指針,其中迭代器的類型是隨機訪問迭代器。
六、vector排序函數
除了sort函數外,vector類本身也提供了多種用於排序的函數,如sort、stable_sort、partial_sort等,這些函數都可以用於提高vector容器的排序效率。需要根據實際情況選擇最適合的排序函數。
七、vector排序算法
vector排序算法的時間複雜度是O(nlogn),從理論上來說,sort函數的效率已經非常高了,對於絕大多數的應用場景,都足以滿足需求。當然如果需要進行更加高效的排序,可以考慮使用其他一些排序算法,如快排等。
八、vectorstruct排序
在實際開發中,我們可能需要對一個結構體數組進行排序,這時可以使用sort函數進行排序,只需要在sort函數中傳入自定義比較函數即可。
struct Person {
std::string name;
int age;
};
bool cmp(const Person& a, const Person& b) {
if(a.age == b.age)
return a.name < b.name;
return a.age < b.age;
}
std::vector vec = {
{"Tom", 18},
{"Jerry", 18},
{"John", 21},
{"Marry", 20},
{"Kate", 19}
};
std::sort(vec.begin(), vec.end(), cmp); // sort in ascending order by age and then name
上述代碼中,我們定義了一個Person結構體,然後定義了一個自定義比較函數cmp,它將首先按照age屬性排序,如果相同再按照name屬性排序。最後,我們使用sort函數進行排序,傳入容器的首尾指針和自定義比較函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254220.html
微信掃一掃
支付寶掃一掃