- 浏览: 768544 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
根据不同的类中不同的字段排序
account_object.hpp 320,371
#include <boost/multi_index_container.hpp> #include <boost/multi_index/member.hpp> #include <boost/multi_index/ordered_index.hpp> #include <iostream> #include <string.h> using namespace boost; using namespace std; struct Student { Student(int i,string n,int a) { id = i; name = n; age = a; } friend std::ostream& operator<<(std::ostream& os,const Student& a) { os << "id:" << a.id << ",name:" << a.name << ",age:"<<a.age << std::endl; return os; } int id; string name; int age; }; typedef boost::multi_index_container<Student,boost::multi_index::indexed_by< boost::multi_index::ordered_unique<boost::multi_index::member<Student,int,&Student::id>>,//id唯一 boost::multi_index::ordered_unique<boost::multi_index::member<Student,string,&Student::name>>, boost::multi_index::ordered_non_unique<boost::multi_index::member<Student,int,&Student::age>>//age允许不唯一 > > StudentContainer; typedef StudentContainer::nth_index<0>::type IdIndex; typedef StudentContainer::nth_index<1>::type NameIndex; typedef StudentContainer::nth_index<2>::type AgeIndex; int main() { StudentContainer sc; sc.insert(Student(1,"zhangsan",20)); sc.insert(Student(3,"lisi",22)); sc.insert(Student(2,"wangwu",21)); sc.insert(Student(4,"zhaoliu",22)); IdIndex& sortById = sc.get<0>(); NameIndex& sortByName = sc.get<1>(); AgeIndex& sortByAge = sc.get<2>(); cout << "sort by id:" << endl; copy(sortById.begin(),sortById.end(), ostream_iterator<Student>(cout)); cout << "sort by name:" << endl; copy(sortByName.begin(),sortByName.end(), ostream_iterator<Student>(cout)); cout << "sort by age:" << endl; copy(sortByAge.begin(),sortByAge.end(), ostream_iterator<Student>(cout)); } sort by id: id:1,name:zhangsan,age:20 id:2,name:wangwu,age:21 id:3,name:lisi,age:22 id:4,name:zhaoliu,age:22 sort by name: id:3,name:lisi,age:22 id:2,name:wangwu,age:21 id:1,name:zhangsan,age:20 id:4,name:zhaoliu,age:22 sort by age: id:1,name:zhangsan,age:20 id:2,name:wangwu,age:21 id:3,name:lisi,age:22 id:4,name:zhaoliu,age:22
account_object.hpp 320,371
发表评论
-
爆仓单的正确吃法
2018-10-24 09:00 444论吃爆仓单的正确姿势: 平仓卖单出现条件:喂价<强平触 ... -
常用术语
2018-10-24 08:59 357call limit:强平触发价 settlement pri ... -
RPC
2018-09-27 07:37 402curl --data '{"jsonrpc&quo ... -
BTS金融
2018-09-02 10:05 5891.所有发行人需要做的是发布资产的有效global_settl ... -
资产创建费用
2018-09-02 09:43 434The asset creation fee depends ... -
手动创建交易
2018-08-25 12:00 4471.2.17是nathan,1.2.21是一个新帐户 1.创 ... -
blind-account
2018-08-25 08:11 3591.创建 unlocked >>> crea ... -
比特股ID
2018-08-12 09:02 379template<uint8_t SpaceID, ... -
比特股调试信息颜色
2018-08-10 07:26 463控制台输出: 绿色 - 调试 白色 - 信息/默认 黄色/棕色 ... -
资产费用
2018-08-09 23:02 40950%的资产创建费用用于资产的资金池,剩下50%的20%用于网 ... -
program_options读命令行和配置文件
2018-07-27 11:30 872#include <boost/program_opti ... -
BTS私链搭建
2018-07-25 10:16 928https://blog.csdn.net/ggq89/art ... -
BTS基础
2018-07-24 07:37 416https://bitsharestalk.org/index ... -
centos下boost安装
2014-03-27 09:28 1069./booststarp.sh //这里的一些错误不用管 ... -
GC的改良
2013-10-17 22:05 582分代回收:对分配不久,诞生时间较短的“年龄”对象进行重点扫描, ... -
GC与引用记数
2013-10-16 21:57 702根(Root)就是判断对象是否可被引用的起始点。至于哪里才是根 ... -
boost 信号槽
2011-06-08 23:43 2327#include<boost/signals2.hp ... -
boost bind
2011-06-07 15:28 1691bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定 ... -
boost reference_wrapper
2011-06-05 21:07 1568reference_wrapper是一个引用类型的包装器 ... -
元编程
2011-06-02 22:46 935元编程的最大特点在于:某些用户自定义的计算可以在程序翻译期进行 ...
相关推荐
1. **boost::multi_index_container**:这是多索引容器的基本类,它提供了对多个索引的管理和数据存储。你可以通过添加不同类型的索引来定义不同的访问方式。 2. **索引类型**:Boost库提供了多种预定义的索引类型...
BOOST multi_index_container Performance test condition: 1. Giving a sentence around 100 bytes (English & Chinese mixed) 2. Dirty phrases around 10,000 3. Do 1,000 loop test 4. Intel I7 ...
Boost库在许多方面扩展了STL,提供了更高级的数据结构(如multi_index_container)和算法(如graph和property_map),以及如智能指针、正则表达式、线程支持等实用工具。 在Boost库中,一些重要的知识点包括: 1. ...
1. **非标准容器**:例如multi_index_container,它允许在一个容器中实现多种索引方式,使得数据访问更为灵活。 2. **特殊迭代器**:如counting_iterator,它可以生成一个从特定值开始递增的迭代器序列,方便进行...
multi_index_container.hpp是Boost.MultiIndex库的一部分,它提供了多索引容器,可以使用多种方式访问和组织数据。在处理大量匹配结果时,这种容器可以提供更高效的数据管理和检索。 concept_archetype.hpp和...
3. **数据结构**:Boost库提供了如`multi_index_container`、`flat_map`和`bimap`等高级数据结构,这些结构在某些场景下比标准库中的`std::map`和`std::set`更加高效或功能更强大。 4. **线程管理**:Boost.Thread...
- 多索引容器如`multi_index_container`提供了更灵活的数据结构。 - 哈希容器扩展了标准库的`std::unordered_map`和`std::unordered_set`。 - `bimap`提供了双端映射的容器。 - 日志库提供了灵活的日志记录机制。 - ...
- **功能简介**:除了标准库提供的容器之外,Boost库还提供了一系列更加灵活的容器类,例如`array`、`multi_index_container`等,以及相关的迭代器和算法。 - **应用场景**:在需要处理复杂数据结构或标准库容器无法...
2. **容器与算法**:Boost提供了如`multi_index_container`这样的高级容器,以及`foreach`循环宏,它们扩展了C++标准库的功能,使代码更加简洁和高效。 3. **函数对象和元编程**:Boost库包含了一系列函数对象...
4. **数据结构**:如`multi_index_container`提供了多种索引方式的容器,`flat_map`则提供了一个扁平化的映射结构,提高了查找速度。 5. **模板元编程**:如`mpl`库,允许在编译时进行计算和类型操作,大大增强了...
3. **容器扩展**:Boost库还提供了多种容器扩展,例如`multi_index_container`,它允许多种索引方式访问同一数据集,提高了数据结构的灵活性。此外,`flat_map`和`flat_set`提供了一种扁平化的实现,相比于标准库中...
5. **容器与算法**:Boost库还包含了多种高级容器,如multi_index_container,以及一些扩展的算法,如icl(Interval Container Library)提供区间操作的容器和算法。 6. **数学与数值计算**:Boost.Math库提供了...
2. **容器和算法**:例如multi_index_container提供多种索引方式访问元素,而foreach则简化了循环遍历容器。 3. **函数工具**:包括函数对象、函数适配器和函数对象工厂,用于编写更简洁的代码。 4. **并发与多...
4. **容器和算法**:Boost库扩展了C++标准库的容器,如`multi_index_container`提供了多重索引的数据结构。同时,`fusion`库提供了一种将不同数据结构融合在一起的方法。`algorithm`库则包含了许多高级的算法,如...
8. STL的扩展:除了标准库提供的STL外,许多库如Boost提供了更多STL的扩展,如multi_index_container、property_map等,进一步增强了STL的功能。 9. 特殊技巧和陷阱:书中详细介绍了STL使用中的常见陷阱,如迭代器...
4. **容器和数据结构**:Boost库提供了如`multi_index_container`这样的高级容器,以及`bimap`(双向映射)和`flat_map`(扁平映射)等高效数据结构。 5. **函数对象和绑定**:Boost.Bind和Boost.Lambda提供了函数...
容器和数据结构是编写复杂程序不可或缺的部分,Boost不仅包括了标准模板库(STL)中的容器,还提供了一些特殊容器来解决特定问题,如multi_index_container等。在并发编程方面,Boost提供了多种同步机制和线程工具,...
2. **容器和算法(Containers and Algorithms)**:Boost库扩展了标准模板库(STL),提供了如`multi_index_container`、`flat_map`等高级容器,以及`assign`、`lambda`等算法工具,增强了代码的灵活性和可读性。...