using vector and sort by STL

在 STL 中有許多容器,像是 vector, list, set, map 等等
有些本身容器就具有排序功能有些則沒有
使用 vector 容器本身就沒有
但是可以利用 std::sort() 來排序, sort 可以利用運算元函式的結果去排序
也可以用比較函式來排序
一般字串比對都是由字串本身的字母來排序,但是不會先用長度比較
因此在下列程式中,可以看到是將客制化自己所需的比較函數,來做一些不同的需求 
 
typedef vector< CString > CSTR_VECTOR;
CSTR_VECTOR strCollection;
 
static bool MyStrCompare(const CString& str1, const CString& str2)
{
  UINT len1 = str1.GetLength();
  UINT len2 = str2.GetLength();
  if (len1 > len2) return false;
  else if (len1 < len2) return true;
  else
   return (str1 < str2);
}
sort(strCollection.begin(), strCollection.end(),MyStrCompare);


Refenece:
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: