最近刚好有个项目需要加强下处理性能,因此学习了一下c++的使用,基础的肯定是各种stl的使用,复合结构自己摸索了几天,写出来给大家一起分享下,有不足的地方欢迎指正,废话不多说,直接上代码:
#include <iostream>
#include <vector>
#include <map>
using namespace std;//定义结构体的字段
struct order
{string oid,cancel_state,direct;float remain_vol,total_vol;
};
//自定义类型
//dict = {float:{order1,order2,order3....}}
typedef map<float,vector<order> > dict;
//dou_list = {order1,order2......}
typedef std::vector<order> dou_list;
int main(){dict core_list;dou_list v_order1,v_order2;order order1;order order2;//往结构中添加元素order1.oid="zhou123";order1.remain_vol=0.2;order1.total_vol=0.2;order1.cancel_state="no";order1.direct="buy";order2.oid="123456";order2.remain_vol=0.6;order2.total_vol=0.6;order2.direct="buy";order2.cancel_state="yes";v_order1.push_back(order1);v_order1.push_back(order2);v_order2.push_back(order2);core_list[100.0]=v_order1;core_list[101.0]= v_order2;//遍历整个dictdict::iterator i;for(i=core_list.begin();i!=core_list.end();){for(int j=0;j<i->second.size();++j){cout<<"price"<<i->first << "order"<<i->second.at(j).oid<<" "<<i->second.at(j).remain_vol<<" "<<i->second.at(j).total_vol<<" "<<i->second.at(j).cancel_state<<" "<<i->second.at(j).direct<<endl;}++i;}//按条件删除元素for(i=core_list.begin();i!=core_list.end();){if(i->first == 100.0){for(dou_list::iterator j = i->second.begin();j!=i->second.end();){order temp = *j;if(temp.cancel_state=="yes"){i->second.erase(j);}else{++j;}}}++i;}//添加元素dict::iterator d;for(d=core_list.begin();d!=core_list.end();){if(d->first == 100.0){order order1;order1.oid="qi123";order1.remain_vol=0.4;order1.total_vol=0.4;order1.cancel_state="no";order1.direct="buy";d->second.push_back(order1);core_list[d->first] = d->second;}++d;}//遍历dict::iterator z;for( z=core_list.begin();z!=core_list.end();){for(int j=0;j<z->second.size();++j){cout<<"second_price"<<z->first << "order"<<z->second.at(j).oid<<" "<<z->second.at(j).remain_vol<<" "<<z->second.at(j).total_vol<<" "<<z->second.at(j).cancel_state<<" "<<z->second.at(j).direct<<endl;}++z;}//修改元素if(core_list[100.0].size() != 0){cout<<"*******"<<endl;for(int j=0;j<core_list[100.0].size();++j){cout<<"#######"<<core_list[100.0].at(j).remain_vol<<endl;if(core_list[100.0].at(j).direct == "buy"){cout<<"fix_befor:"<<core_list[100.0].at(j).remain_vol<<endl;core_list[100.0].at(j).remain_vol = 0.0;cout<<"fix_after:"<<core_list[100.0].at(j).remain_vol<<endl;}}}//遍历for(dict::iterator y=core_list.begin();y!=core_list.end();){for(int j=0;j<y->second.size();++j){cout<<"third_price"<<y->first << "order"<<y->second.at(j).oid<<" "<<y->second.at(j).remain_vol<<" "<<y->second.at(j).total_vol<<" "<<y->second.at(j).cancel_state<<" "<<y->second.at(j).direct<<endl;}++y;}return 0;
}

c++ 复合结构的基本用法相关推荐

  1. 结构型 组合模式 Composite

    Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使 用具有一致性. Mary今天过生日."我过生日,你要送我一件礼物. ...

  2. 计算机英语网络电话ppt,被用来做英语

    Hi,大家好,我是造物家. 每天为渴望用英语的人群分享有趣的英语资料,如果大家喜欢的话,就点点关注. 我们一起进入英语的世界.你的转发,将是对我们最大的鼓励,O(∩_∩)O谢谢. 一.-ing 的基本 ...

  3. with as 用法_介词with用法

    with是一个十分有用的介词,其用法也比较复杂,以下用法值得注意: 1. 表示方式.手段或工具等时(=以,用),注意不要受汉语意思的影响而用错搭配,如"用英语"习惯上用in Eng ...

  4. java的枚举类型是什么_什么是枚举(java枚举类型enum用法)

    最佳回答 枚举 1.枚举 (enumeration) 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称.枚举类型有名称.基础类型和一组字段.基础类型. &qu ...

  5. call和calling的用法_英语词汇call的短语及用法

    call是我们经常用到的英语词汇,下面是小编整理的call的短语搭配及用法,希望能帮到大家! 1 . call at a place 停靠.如: The train calls at every st ...

  6. 一个普通it人的十年回顾_十年高考试题中的it用法解析

    在高考单项填空试题的选项中,it是出现频率较高的词汇之一.下面针对近十年高考中涉及到it的题目进行分类解析: 一. 作为正确项的it 1. I like ________ in the autumn ...

  7. from用法 prepare_单词与短语 知识讲解 prepare,prepare for,be prepared for,be prepared from的区别...

    内容: prepare, prepare for, prepared for prepare和另两个词组都是"准备"的意思,但含义和用法有别. prepare用作及物动词,后接名词 ...

  8. with复合结构小结

    摘自:http://blog.hjenglish.com/hsiangshun/archive/2008/12/18/1247109.html 不少学生对句中with结构的用法不甚清楚,现总结如下. ...

  9. mysql中的leading用法_登录 - SegmentFault 思否

    前面我们主要分享了MySQL中的常见知识与使用.这里我们主要分享一下MySQL中的高阶使用,主要包括:函数.存储过程和存储引擎. 对于MySQL中的基础知识,可以参见 1 函数 函数可以返回任意类型的 ...

最新文章

  1. 顶级数学家有多厉害?
  2. Kmeans聚类定义、KMeans聚类的步骤、Kmeans聚类常见问题及改进、Kmeans聚类的变形、Kmeans聚类的优缺点
  3. 派派月度环比增长明显 创新互动玩法引关注
  4. 一篇文章把Self-Attention与Transformer讲明白
  5. Arduino--Mlx90614红外温度传感器(额温枪芯片)
  6. 用GD32替代STM32,是什么体验?
  7. linux c 服务程序,Linux C 后台服务程序单进程控制
  8. python之socket编程
  9. 4. linux调用文件计算阶乘前5项和_【题解循环】1091:求阶乘的和
  10. pgsql函数定时更新表_Postgresql PL/PGSQL 程序语言系列 1 (存储过程过时了吗,与函数)...
  11. C++中for循环的5种语法
  12. 白话文:几个例子马上看懂typescript基础类型
  13. sama5做linux的sd卡启动u盘,windows中service.msc与regedit
  14. 王彪20162321 2016-2017-2 《程序设计与数据结构》第4周学习总结
  15. 【Android 12 AOSP学习】Android 12源码下载编译
  16. java实现的身份证照片脸部识别(头像截图) 以及OCR字体识别
  17. ONLYOFFICE Docs如何与NEXTCLOUD 24连接集成
  18. 2012年8月编程语言排行榜
  19. Android流量统计分析
  20. 实现微信小程序与微信生态的互相跳转H5入口

热门文章

  1. latex中怎么在符号正上和正下方编写公式
  2. 科普:桌面端CPU常见型号、定位和价格
  3. 云服务器哪家强?华为云服务器了解一下
  4. 强力推荐Linux下的五大BT下载工具
  5. Halcon学习笔记之支持向量机(一)
  6. 用photoshop套索功能抠图
  7. 新公司新入手的一个新项目的心路历程
  8. 前端歌谣的刷题之路-第六题-加粗文字
  9. //4.判断一个字符串是否为另外一个字符串旋转之后的字符串。 //例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0. //AABCD左旋
  10. 互联网设计产品模块!