news 2026/5/14 6:14:07

如何在C++中使用标准库的智能指针

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在C++中使用标准库的智能指针

使用标准库的智能指针

* 注意,在使用数组的时候需要使用数组的特化版本。

#include <iostream> #include <memory> std::unique_ptr<char[]> division(int x, int y) { std::unique_ptr<char[]> sp(new char[100]{}); if (y == 0) { throw "Please do not use 0 as a divisor"; } std::sprintf(sp.get(), "%d / %d = %d\n", x, y, x / y); return sp; } int main() { try { std::unique_ptr<char[]> sp = division(6, 0); std::cout << sp.get() << std::endl; } catch (const char* e) { std::cerr << e << std::endl; } }

互斥锁的释放

在多线程编程中,为了保护共享资源,我们通常会使用 互斥量 mutex 来进行保护。

并且在使用资源前进行上锁的 lock() 操作,在使用完毕后用 unlock() 进行解锁。

直接使用互斥量

这里假定在 2000ms 后两个线程都会结束。

#include <iostream> #include <thread> #include <mutex> int x = 0; std::mutex mutex; void fun() { for (int i = 0; i < 100000; i += 1) { mutex.lock(); x += 1; mutex.unlock(); } } int main() { std::thread th1(fun); std::thread th2(fun); th1.join(); th2.join(); std::cout << x << std::endl; }

但是这种写法需要开始和结束处都对 mutex 整个对象进行操作。此处代码较短不容易出错,但是当代码量越来越大,各种情况越来越复杂后就很容易遗漏最后的 mutex.unlock(); 解锁操作。

此时就可以使用 RAII 的方式,在构造的时候对 mutex 进行 lock() 操作,在 unlock() 进行解锁操作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 6:09:04

数据可视化入门:让你的数据说话

数据可视化入门&#xff1a;让你的数据说话 大家好&#xff0c;我是蔓蔓。在独立开发过程中&#xff0c;我经常需要做数据可视化来展示产品数据。今天我来和大家分享数据可视化的入门知识和实战技巧。 选择合适的图表 图表选择指南 // 1. 对比类别 → 柱状图 // 2. 显示趋势…

作者头像 李华
网站建设 2026/5/14 6:07:08

芯片制造回流:数据驱动良率提升与智能运营的实践路径

1. 芯片制造回流浪潮下的核心挑战&#xff1a;数据&#xff0c;而非砖瓦最近几年&#xff0c;半导体制造业回流美国本土成了一个炙手可热的话题。无论是出于供应链安全的考量&#xff0c;还是产业政策的推动&#xff0c;数百上千亿美元的资金正涌入这个领域&#xff0c;目标是在…

作者头像 李华
网站建设 2026/5/14 6:06:08

PolyMetrics多链数据分析平台:从架构解析到自定义指标实战

1. 项目概述与核心价值最近在和一些做区块链应用开发的朋友交流时&#xff0c;发现一个普遍痛点&#xff1a;项目上线后&#xff0c;数据散落在链上、链下、数据库和各类API里&#xff0c;想分析个用户活跃度、交易趋势或者合约调用情况&#xff0c;得东拼西凑&#xff0c;费时…

作者头像 李华
网站建设 2026/5/14 6:03:06

Linux系统下Filezilla FTP客户端的两种高效部署方案

1. 为什么选择Filezilla作为Linux平台的FTP客户端&#xff1f; 作为Linux用户&#xff0c;我们经常需要在服务器之间传输文件。虽然命令行工具如scp、sftp也能完成工作&#xff0c;但图形化客户端在批量文件操作和可视化管理方面优势明显。Filezilla作为老牌开源FTP解决方案&am…

作者头像 李华
网站建设 2026/5/14 6:00:53

京东商品自动监控下单终极指南:jd-happy让您不再错过心仪好货

京东商品自动监控下单终极指南&#xff1a;jd-happy让您不再错过心仪好货 【免费下载链接】jd-happy [DEPRECATED]Node 爬虫&#xff0c;监控京东商品到货&#xff0c;并实现下单服务 项目地址: https://gitcode.com/gh_mirrors/jd/jd-happy 还在为京东热门商品秒光而烦…

作者头像 李华