在cocoa中使用C++STL 链表

本文介绍如何在Cocoa项目中使用C++ STL链表,包括修改文件名、引入头文件、定义结构体及操作链表的方法。演示了如何添加和删除链表中的节点。
  1. 在cocoa中使用C++STL 链表
  2. 1>.把“*.m”文件重命名为“*.mm”。
  3. 2>.在.mm文件中包含头文件:
  4. #include <list> 
  5. using namespace std;
  6. 3>.定义结构
  7. typedef struct MSUsb_mountInfo
  8. {
  9.   char          cVolumePath[MAX_CHARLEN];           
  10.   uint32_t      cVolumeByteLen;                 
  11.   char      cDiskID[MAX_CHARLEN];
  12.   uint32_t  cDiskIDLen;                 
  13. }mountInfo;
  14. //usb pid, vid, mount disk information 
  15. typedef struct MStorageDeviceInfo // __MS_USBInformation 
  16. {
  17.     uintptr_t               VendorID;                       //vendor id 
  18.     uintptr_t               ProductID;                      //product id 
  19.     uintptr_t               bcdDevice;                      //device version number 
  20.     
  21.     uintptr_t               nMountNumber;                   //挂载分区的个数 
  22.     mountInfo               szMount[40];                    //最多挂载20个分区 
  23.     
  24. /*  bool operator == (const MStorageDeviceInfo & rhs)
  25.     {   
  26.         if(VendorID==rhs.VendorID && ProductID==rhs.ProductID && bcdDevice == rhs.bcdDevice) 
  27.         {
  28.             return true;
  29.         }
  30.         else
  31.             return false;
  32.     }*/
  33. };
  34. 4>.使用链表:  
  35. //使用c++ 炼表 
  36. typedef list<MStorageDeviceInfo> ListMStorageDeviceInfo;
  37. ListMStorageDeviceInfo g_msListDev;
  38. ListMStorageDeviceInfo g_interListDev;
  39. 5>.添加节点:
  40. MStorageDeviceInfo dev;
  41.  dev.nMountNumber = 0;
  42. g_msListDev.insert(g_msListDev.end(), dev);
  43. 6>.删除节点:
  44. int ms_DeleteListNoDiffRecorded(
  45.                              long vendorID,
  46.                              long productID,
  47.                              long versionNumber,
  48.                              void *param
  49. )
  50. {
  51.     ListMStorageDeviceInfo *plist= (ListMStorageDeviceInfo*)param;
  52.     if(plist->empty())
  53.     {
  54.         //ps is empty  
  55.         return 0;
  56.     }
  57.     ListMStorageDeviceInfo::iterator ites;
  58.     for(ites = plist->begin(); ites != plist->end();)
  59.     {
  60.         if((*ites).VendorID == vendorID 
  61.            (*ites).ProductID == productID 
  62.            (*ites).bcdDevice == versionNumber)
  63.         {
  64.             ites = plist->erase(ites);   //删除节点  
  65.             continue;
  66.         }
  67.         ites ++;
  68.     }
  69.     return 0;
  70. }
内容概要:本文档是国际电工委员会(IEC)发布的标准IEC 60068-2-27:2008,全称为《环境试验 第2-27部分:试验——试验Ea和指南:冲击》,属于基础安全出版物。该标准规定了评估试样在运输、储存、操作或使用过程中承受非重复性或重复性冲击能力的标准程序,旨在检测机械弱点、性能退化或累积损伤。标准定义了三种基本脉冲波形(半正弦波、最终峰值锯齿波和梯形波),并详细规定了试验装置特性、测量系统、安装方法、严酷等级、测试流程及报告要求。同时提供了脉冲形状选择与应用的指导(附录A)、冲击响应谱及其他脉冲特性的说明(附录B),以及与其他冲击试验的比较(附录C)。 适合人群:从事电子电气产品设计、测试、质量控制及相关标准化工作的工程师和技术人员;负责制定产品规格和测试规范的技术管理人员;实验室测试人员及认证机构工作人员。 使用场景及目标:①用于电子产品、元器件及设备在运输和使用环境中抗冲击性能的评估;②作为产品设计验证和质量控制手段,确保产品结构完整性;③为制定具体产品规范提供试验依据,明确冲击试验的脉冲类型、加速度峰值、持续时间和方向等参数;④支持不同实验室间测试结果的可比性和一致性。 其他说明:本标准应与IEC 60068-1及其他相关部分(如IEC 60068-2-47、IEC 60068-2-55)结合使用;标准强调测试的可重现性,并建议在实际环境未知时参考附录中的典型严酷等级示例;对于高动态响应的试样,允许在技术规范中规定放宽公差或记录实测值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值