根据JIS表对数组进行排序. [英] Sort Array acording to JIS table.
问题描述
我需要在c ++中根据JIS表顺序对数组进行排序.
I need to sort array according to JIS table order in c++.
任何人都可以帮助我.
我启动了一个链接,需要在c#中对数组进行排序.
I initiated a link in which i need sorting array in c#.
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/ab190074-4a2e-46a2-9098-68bcdfa524ab
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/ab190074-4a2e-46a2-9098-68bcdfa524ab
我在那个论坛上问了这个问题,Liu用正确的答案很好地回答了我,但目前我需要用C ++来完成同样的事情.
I asked this question in that forum and Liu replied me well with proper answer but currently i needed same thing to be done in C++.
我已经在论坛结束时添加了用C ++编写的代码段(上面提供了链接.).
I have added code snippet written in C++ at the end of forum(link provided above.).
谢谢.
推荐答案
C ++中的代码
Code in C++
bool SortCompareI18N(CSEString& left,CSEString& right)
{
_locale_t lCurLocale = _get_current_locale();
bool bRetVal = false;
int lSortCompareVal = 0;
lSortCompareVal = _tcscoll_l(left.c_str(),right.c_str(),lCurLocale);
if(lSortCompareVal< = 0)
{
bRetVal = true;
}
返回bRetVal;
}
void GetLocalSortedVector(std :: vector< CSEString>& sInSortedVec)
{
std :: sort(sInSortedVec.begin(),sInSortedVec.end(),SortCompareI18N);
}
bool SortCompareI18N( CSEString &left, CSEString &right )
{
_locale_t lCurLocale = _get_current_locale();
bool bRetVal = false;
int lSortCompareVal = 0;
lSortCompareVal = _tcscoll_l(left.c_str(), right.c_str(), lCurLocale);
if(lSortCompareVal <= 0)
{
bRetVal = true;
}
return bRetVal;
}
void GetLocalSortedVector(std::vector<CSEString>& sInSortedVec)
{
std::sort(sInSortedVec.begin(), sInSortedVec.end(), SortCompareI18N);
}
这篇关于根据JIS表对数组进行排序.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!