当前位置: 首页 > news >正文

C++之结构体智能指针shared_ptr实例(一百九十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:使用C++之shared_ptr指向结构体的智能指针。

2.应用实例

<1>.std::vector<std::shared_ptr<XML_ParserStruct>>插入智能指针结构体

#include <iostream>
#include <memory>
#include <vector>struct 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_ptr<XML_ParserStruct> mParser = std::make_shared<XML_ParserStruct>(1, "Test1");// 使用智能指针访问结构体的成员// std::cout << "mParser id: " << mParser->id << std::endl;// std::cout << "mParser name: " << mParser->name << std::endl;//2.way02:将每个mParser的元素插入vector容器中std::vector<std::shared_ptr<XML_ParserStruct>> parserContainer;for(int i = 0; i < 10; i ++){//way01std::shared_ptr<XML_ParserStruct> mParser = std::make_shared<XML_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_ptr<XML_ParserStruct> parser : parserContainer) {printf("id = %d, name = %s \n",parser->id, parser->name.c_str());}return 0;
}
http://www.lryc.cn/news/164354.html

相关文章:

  • 初出茅庐的小李博客之根据编译时间生成软件版本号
  • “投资教父”熊晓鸽老了,IDG光环不再
  • XEX智能交易所:加密货币衍生品杠杆、期货和期权简介
  • 记录第一次带后端团队
  • Python文件操作(02):读文件
  • Flink(java版)
  • 什么是动态组件以及使用场景
  • CRM销售管理系统如何提高销售效率
  • 纯小白安卓刷机1
  • C高级day4循环语句
  • Linux 操作系统云服务器安装部署 Tomcat 服务器详细教程
  • 【易盾点选】
  • vue中打印指定dom元素
  • OpenCV(三十六):霍夫直线检测
  • 文心一言 VS 讯飞星火 VS chatgpt (91)-- 算法导论8.3 4题
  • keep-alive缓存三级及三级以上路由
  • vite vue项目 运行时 \esbuild\esbuild.exe 缺失 错误码 errno: -4058, code: ‘ENOENT‘,
  • favicon.ico网站图标不显示问题 Failed to load resource: net::ERR_FILE_NOT_FOU
  • 微服务·架构组件之服务注册与发现-Nacos
  • Linux驱动【day2】
  • 4、Nginx 配置实例-反向代理
  • 2023年世界机器人大会回顾
  • Mac系统 AndroidStudio Missing essential plugin:org.jetbrains.android报错
  • 读书笔记:多Transformer的双向编码器表示法(Bert)-1
  • 第二证券:股利支付率和留存收益率的关系?
  • 煤矿虚拟仿真 | 采煤工人VR虚拟现实培训系统
  • buuctf crypto 【[GXYCTF2019]CheckIn】解题记录
  • 微服务05-Docker基本操作
  • OpenHarmony创新赛|赋能直播第三期
  • docker镜像详解