zoukankan      html  css  js  c++  java
  • sort 及lambda表达式定制排序

    void CDrawCircle::OnBnClickedBtnSelectinfo()
    {
        // TODO:  在此添加控件通知处理程序代码
        UpdateData(TRUE);
        BeginEditorCommand();
        AcDbObjectIdArray idarr;
        bool b=CSelectUtil::SelectSomeEntityForBox(idarr, _T("
    选择需要提取的文字"));
        if (!b)
        {
            return;
        }
        std::map<CString, AcGePoint3d> mapTextToPt;
        
        int iNum = idarr.length();
        for (int i = 0; i < iNum;i++)
        {
            AcDbObjectId idTemp = idarr[i];
            AcDbEntity *pEnt = NULL;
            Acad::ErrorStatus es;
            es=acdbOpenAcDbEntity(pEnt, idTemp,AcDb::kForWrite);
            if (es!=eOk)
            {
                continue;
            }
            if (!pEnt->isKindOf(AcDbText::desc()))
            {
                continue;
            }
            AcDbText *pText = AcDbText::cast(pEnt);
            CString sText = pText->textString();
            AcGePoint3d pt = pText->position();
            mapTextToPt.insert(std::pair<CString, AcGePoint3d>(sText, pt));
            pText->close();
        }
        std::vector<std::pair<CString, AcGePoint3d>> vecInfo(mapTextToPt.begin(), mapTextToPt.end());
        std::sort(vecInfo.begin(), vecInfo.end(), [](const std::pair<CString, AcGePoint3d>&a, const std::pair<CString, AcGePoint3d>&b){return a.second.x<b.second.x; });
        int iCount = 1;
        for (size_t i = 0; i < vecInfo.size();i++)
        {
            CString sText = vecInfo[i].first;
            switch (iCount)
            {
            case 1:
                m_sNum1 = sText;
                break;
            case 2:
                m_sNum2 = sText;
                break;
            case 3:
                m_sNum3 = sText;
                break;
            case 4:
                m_sNum4 = sText;
                break;
            case 5:
                m_sNum5 = sText;
                break;
            case 6:
                m_sNum6 = sText;
                break;
            case 7:
                m_sNum7 = sText;
                break;
            case 8:
                m_sNum8 = sText;
                break;
            case 9:
                m_sNum9 = sText;
                break;
            case 10:
                m_sNum10 = sText;
                break;
            case 11:
                m_sNum11 = sText;
                break;
            case 12:
                m_sNum12 = sText;
                break;
            case 13:
                m_sNum13 = sText;
                break;
            case 14:
                m_sNum14 = sText;
                break;
    
            default:
                break;
            }
            iCount++;
        }
        CompleteEditorCommand(TRUE);
        UpdateData(FALSE);
    }
  • 相关阅读:
    用电脑Python控制Arduino
    Arduino-LiquidCrystal_I2C 液晶库
    Arduino通讯串口
    nginx statistics in multi-workers
    Nginx RTMP 模块 nginx-rtmp-module 指令详解
    windows下搭建nginx-rtmp服务器
    超实用压力测试工具-ab工具
    (总结)Nginx配置文件nginx.conf中文详解
    NGINX conf 配置文件中的变量大全 可用变量列表及说明
    「自己开发直播」实现nginx-rtmp-module多频道输入输出与权限控制
  • 原文地址:https://www.cnblogs.com/xzh1993/p/6693546.html
Copyright © 2011-2022 走看看