求能对结构体数组中元素排序的mfc函数

microtan0902 2005-05-03 09:47:28
typedef struct
{
CString m_sWord;
BYTE m_bCode0;
BYTE m_bCode1;
BYTE m_bCode2;
long m_lFreq;
int m_iNext;
CString m_codebit;
}WordType;

CArray<SequenceType,SequenceType>seqArray;

求函数能对seqArray数组中的m_lfreq进行排序。
...全文
199 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
microtan0902 2005-05-04
  • 打赏
  • 举报
回复
请问楼上内部实现的排序是什么排序算法?时间复杂度如何?thx
Reesoft 2005-05-03
  • 打赏
  • 举报
回复
搞错了,应该这样写:

struct CompareFunc
{
bool operator()(const WordType wt1, const WordType wt2) const
{
return wt1.m_lFreq > wt2.m_lFreq;
}
};

set<WordType, CompareFunc> setArray;

set容器会自动对其中的元素进行排序,如果要包含重复的元素,请用multiset容器。
Reesoft 2005-05-03
  • 打赏
  • 举报
回复
试试stl的set容器吧:set<Key, Compare, Alloc>

Example
struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};

int main()
{
const int N = 6;
const char* a[N] = {"isomer", "ephemeral", "prosaic",
"nugatory", "artichoke", "serif"};
const char* b[N] = {"flat", "this", "artichoke",
"frigate", "prosaic", "isomer"};

set<const char*, ltstr> A(a, a + N);
set<const char*, ltstr> B(b, b + N);
set<const char*, ltstr> C;

cout << "Set A: ";
copy(A.begin(), A.end(), ostream_iterator<const char*>(cout, " "));
cout << endl;
cout << "Set B: ";
copy(B.begin(), B.end(), ostream_iterator<const char*>(cout, " "));
cout << endl;

cout << "Union: ";
set_union(A.begin(), A.end(), B.begin(), B.end(),
ostream_iterator<const char*>(cout, " "),
ltstr());
cout << endl;

cout << "Intersection: ";
set_intersection(A.begin(), A.end(), B.begin(), B.end(),
ostream_iterator<const char*>(cout, " "),
ltstr());
cout << endl;

set_difference(A.begin(), A.end(), B.begin(), B.end(),
inserter(C, C.begin()),
ltstr());
cout << "Set C (difference of A and B): ";
copy(C.begin(), C.end(), ostream_iterator<const char*>(cout, " "));
cout << endl;
}

照着这个例子,你的代码可以这样写:

struct CompareFunc
{
bool operator()(const long l1, const long l2) const
{
return l1 > l2;
}
};

set<WordType, CompareFunc> setArray;

//未测试过,不知能不能跑:-)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧