這是我一直在考慮的事情。我已經做了一些研究,找不到任何東西,但我還沒有發現任何相反的事情。是否有可能使用std :: sort與帶額外參數的排序函數?
請考慮<algorithm>
中的std::sort
函數。它需要兩個迭代器和一個函數指針作爲參數。所以,如果我想按字母順序排序字符串矢量,我會做這樣的事情:
bool ascending(std::string lhs, std::string rhs) { return lhs < rhs; }
std::sort(my_vector.begin(), my_vector.end(), ascending);
的事情是,這種類型的排序功能是區分大小寫的,所以纔會將一個字符串以小寫開頭「一'以大寫字母'Z'開始的字符串之後。我看到的唯一可見的解決方案是沿着bool ascending_case_insensitive()
的線創建附加功能。不過,如果我可以在排序中使用bool ascending()
函數並附加bool is_case_sensitive
參數,那將會很不錯。這可能嗎?
這需要綁定函子/ lambda – deviantfan 2014-10-18 20:27:39
C++ 11或C++ 03? – 2014-10-18 20:27:40
11非常好。 – 2014-10-18 20:28:09