sort 及lambda表达式定制排序
void CDrawCircle::OnBnClickedBtnSelectinfo()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
BeginEditorCommand();
AcDbObjectIdArray idarr;
bool b=CSelectUtil::SelectSomeEntityForBox(idarr, _T("\n选择需要提取的文字"));
if (!b)
{
return;
}
std::map<CString, AcGePoint3d> mapTextToPt; int iNum = idarr.length();
for (int i = ; 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 = ;
for (size_t i = ; i < vecInfo.size();i++)
{
CString sText = vecInfo[i].first;
switch (iCount)
{
case :
m_sNum1 = sText;
break;
case :
m_sNum2 = sText;
break;
case :
m_sNum3 = sText;
break;
case :
m_sNum4 = sText;
break;
case :
m_sNum5 = sText;
break;
case :
m_sNum6 = sText;
break;
case :
m_sNum7 = sText;
break;
case :
m_sNum8 = sText;
break;
case :
m_sNum9 = sText;
break;
case :
m_sNum10 = sText;
break;
case :
m_sNum11 = sText;
break;
case :
m_sNum12 = sText;
break;
case :
m_sNum13 = sText;
break;
case :
m_sNum14 = sText;
break; default:
break;
}
iCount++;
}
CompleteEditorCommand(TRUE);
UpdateData(FALSE);
}
sort 及lambda表达式定制排序的更多相关文章
- Java8 Collections.sort()及Arrays.sort()中Lambda表达式及增强版Comparator的使用
摘要:本文主要介绍Java8 中Arrays.sort()及Collections.sort()中Lambda表达式及增强版Comparator的使用. 不废话直接上代码 import com.goo ...
- lambda 表达式定制操作
泛型算法中的定制操作 许多算法都会比较输入序列中的元素以达到排序的效果,通过定制比较操作,可以控制算法按照编程者的意图工作. 普通排序算法: template<class RandomItera ...
- JDK8新特性02 Lambda表达式02_Lambda语法规则
//函数式接口:只有一个抽象方法的接口称为函数式接口. 可以使用注解 @FunctionalInterface 修饰 @FunctionalInterface public interface MyF ...
- 【Java新特性】Lambda表达式典型案例,你想要的的都在这儿了!!
写在前面 不得不说,有些小伙伴的学习热情真高,学完了Lambda表达式的语法,想来几个典型案例再强化下.于是问冰河能否给几个Lambda表达式的典型使用示例.于是乎,便有了这篇文章. 案例一 需求 调 ...
- Java8 Lambda表达式(一)
目录 一.应用场景引入 优化一:使用策略模式 优化二:使用匿名内部类 优化三:使用Lambda表达式 优化四:使用Stream API 二.Lambda运算符和对应语法 语法格式 Lambda表达式需 ...
- Java8初体验(一)lambda表达式语法
感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...
- Java8学习笔记----Lambda表达式 (转)
Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...
- Java开发笔记(六十一)Lambda表达式
前面介绍了匿名内部类的简单用法,通过在sort方法中运用匿名内部类,不但能够简化代码数量,还能保持业务代码的连续性.只是匿名内部类的结构仍显啰嗦,虽然它省去了内部类的名称,但是花括号里面的方法定义代码 ...
- Java8 lambda表达式语法 1
本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇, ...
随机推荐
- OpenFileDiag 使用
MSDN模版 Stream myStream =null; OpenFileDialog openFileDialog1 =newOpenFileDialog(); openFileDialog1.I ...
- restlet 2.3.5 org.restlet包导入eclipse出现的com.sun.net.httpserver类包找不到问题
准备过一遍restlet 2.3.5 JavaEE的源码. 环境 eclipse3.7.2 和 jdk 7.0 将org.restlet 包增加到eclipse中.出现 com.sun.net.htt ...
- 在Unity中接入Xbox360手柄
提要 本文主要介绍了怎样在Unity中接入Xbox360的手柄. 当我们调Input.GetAxis("Horizontal"),我们调了什么 Unity中全部关于输入的设置都在E ...
- C#调用Oracle存储过程的方法
C#调用Oracle存储过程的方法 准备: 环境:pl/sql+oracle9i+vs2008 创建表test: create table TEST( ID NUMBER,//编号 NA ...
- preparing launch delegate问题
启动tomcat成功,但是右下角一直显示100%点进去 发现preparing launch delegate卡在100% 以为是代理的事,把代理关了,还是不行,最后发现是数据库没有,导入数据库后完美 ...
- Flask的jinja2模板中自定义过滤器的使用
大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子. 下面的例子完成了自 ...
- 洛谷 P2585 [ ZJOI 2006 ] 三色二叉树 —— 树形DP
题目:https://www.luogu.org/problemnew/show/P2585 首先,三色其实记录两种状态:是绿色,不是绿色 即可,因为红蓝可以随意取反: 一开始因为懒得还原出树,所以写 ...
- CF 1036 B Diagonal Walking v.2 —— 思路
题目:http://codeforces.com/contest/1036/problem/B 题意:从 (0,0) 走到 (n,m),每一步可以向八个方向走一格,问恰好走 k 步能否到达,能到达则输 ...
- 利用Oracle内置分析函数进行高效统计汇总
分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现 ...
- VIDIOC_S_INPUT 作用 (转载)
转载:http://blog.csdn.net/kickxxx/article/details/7088658 G_INPUT和S_INPUT用来查询和选则当前的input 一个video设备节点可能 ...