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,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇, ...
随机推荐
- oracle 11g GRID 中 关于 OLR 须要知道的一些内容
oracle 11g GRID 中 关于 OLR 须要知道的一些内容 1.检查olr 的状态: [root@vmrac1 ~]# ocrcheck -local Status of Oracle ...
- VMWare中的Host-only、NAT、Bridge的比較
VMWare有Host-only(主机模式).NAT(网络地址转换模式)和Bridged(桥接模式)三种工作模式. 1.bridged(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是 ...
- 9种样式CSS3 渐变button集
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- tesnorflow Conv2DTranspose
tensorflow/python/layers/convolutional.py # Infer the dynamic output shape: out_height = utils.decon ...
- JavaScript基础 -- ECMAscript
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本 ...
- PHP博客项目-gai
XX科技还是米有电话过来,看样子真的是黄了.这段时间都没有好好学习,经历了两次稀里糊涂的面试,特别是第二次,让我感觉自己之前学的东西都已经忘了,本来就学的不多,也不扎实,还一忘...看了是真的要开始着 ...
- Bootstrap Dropdown 源码分析
/* ======================================================================== * Bootstrap: dropdown.js ...
- ASCII表格
1. ASCII表格
- 利用JProfile 7分析内存OOM
今天发现一个OOM问题,想来可能是有部分内存没有正确释放导致的 于是想到了之前使用的JProfile来分析一下 由于大概知道哪个类没有释放,可以在Memory Views里看一下对应的类有多少实例来确 ...
- POJ 2260:Error Correction
Error Correction Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6014 Accepted: 3886 ...