wordpress的网站国内网,淘宝网站建设的缺点,网站建设需要的服务器,网站建设在线菜鸟教程简介#xff1a; CSDN博客专家#xff0c;专注Android/Linux系统#xff0c;分享多mic语音方案、音视频、编解码等技术#xff0c;与大家一起成长#xff01; 优质专栏#xff1a;Audio工程师进阶系列【原创干货持续更新中……】#x1f680; 人生格言#xff1a; 人生… 简介 CSDN博客专家专注Android/Linux系统分享多mic语音方案、音视频、编解码等技术与大家一起成长 优质专栏Audio工程师进阶系列【原创干货持续更新中……】 人生格言 人生从来没有捷径只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注Android系统攻城狮 1.前言 本篇目的使用C之shared_ptr指向结构体的智能指针。 2.应用实例
1.std::vectorstd::shared_ptrXML_ParserStruct插入智能指针结构体
#include iostream
#include memory
#include vectorstruct XML_ParserStruct {// 结构体成员int id;std::string name;XML_ParserStruct(int _id, const std::string _name) : id(_id), name(_name) {}~XML_ParserStruct() {}
};int main() {//1.way01: 使用 std::make_shared 创建智能指针//std::shared_ptrXML_ParserStruct mParser std::make_sharedXML_ParserStruct(1, Test1);// 使用智能指针访问结构体的成员// std::cout mParser id: mParser-id std::endl;// std::cout mParser name: mParser-name std::endl;//2.way02:将每个mParser的元素插入vector容器中std::vectorstd::shared_ptrXML_ParserStruct parserContainer;for(int i 0; i 10; i ){//way01std::shared_ptrXML_ParserStruct mParser std::make_sharedXML_ParserStruct(i, Test std::to_string(i));//way02// mParser-id i;// mParser-name Test std::to_string(i);parserContainer.push_back(mParser);}// 使用范围-based for 循环遍历容器中的元素//for (const auto parser : parserContainer) {//Orfor (std::shared_ptrXML_ParserStruct parser : parserContainer) {printf(id %d, name %s \n,parser-id, parser-name.c_str());}return 0;
}