热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何排序MFC的CStringArray

#define_AFXDLL#include<afx.h>#include<afxcoll.h>#include&l
#define  _AFXDLL
#include 
< afx.h >
#include 
< afxcoll.h >
#include 
< iostream >
using   namespace  std;

class  CSortStringArray :  public  CStringArray  {
public:
    
void Sort();
private:
    BOOL CompareAndSwap(
int pos);
}
;
void  CSortStringArray::Sort()
{
    BOOL bNotDone 
= TRUE;

    
while (bNotDone)
    
{
        bNotDone 
= FALSE;
        
for(int pos = 0;pos < GetUpperBound();pos++)
            bNotDone 
|= CompareAndSwap(pos);
    }

}

BOOL CSortStringArray::CompareAndSwap(
int  pos)
{
    CString temp;
    
int posFirst = pos;
    
int posNext = pos + 1;

    
if (GetAt(posFirst).CompareNoCase(GetAt(posNext)) > 0)
    
{
        temp 
= GetAt(posFirst);
        SetAt(posFirst, GetAt(posNext));
        SetAt(posNext, temp);
        
return TRUE;

    }

    
return FALSE;
}

void  main()
{
    CSortStringArray sortArray;
    sortArray.Add(CString(
"Zebra"));
    sortArray.Add(CString(
"Bat"));
    sortArray.Add(CString(
"Apple"));
    sortArray.Add(CString(
"Mango"));
    
for (int i = 0; i <= sortArray.GetUpperBound(); i++)
        cout 
<< sortArray[i] << endl;

    sortArray.Sort();
    cout 
<< endl;

    
for (int j = 0; j <= sortArray.GetUpperBound(); j++)
        cout 
<< sortArray[j] << endl;
    system(
"pause");
}

参考: How to Sort a CStringArray in MFC


推荐阅读
author-avatar
Gvyi_262
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有