32.智能指针auto_ptr
2024-08-25 01:17:14
#include <iostream>
#include <memory>
#include <string>
#include <vector>
using namespace std; struct my
{
int x;
int y;
}; //智能指针主要用于解决内存泄漏,拥有常规指针一样的使用,重载* ->运算符
void run1()
{
//void *p = malloc(1024 * 1024 * 100);
//智能指针,检测到没有使用就会自动释放
// auto_ptr<int>myp(new int[1024 * 1024 * 400]);
//*myp;//根据指针去内存,重载* auto_ptr<my> my1(new my[]);
cout << my1->x << endl;
} void run()
{
//指针只能用构造函数初始化,用explicit拒绝auto_ptr<string> p = new string[100] 初始化
//智能指针可以创建指向STL的指针,但只能创建一个
auto_ptr<string> p(new string);
//创建多个会出错
//auto_ptr<string> p( new string[10] );
*p = ""; //string *p3 = new string[10]; //智能指针是浅拷贝(通过计数的方式决定所引用的空间是不是可以释放)
auto_ptr<string> p2(p);
cout << *p2 << endl;
//STL可以包含智能指针
vector<auto_ptr<int>> myv;
myv.push_back(auto_ptr<int>(new int[]));
} void main()
{
while ()
{
run();
}
cin.get();
}
最新文章
- django 富文本展示 以及 post提交出错
- nVivo highlight code中的文本
- python 面向对象学习
- javascript/jquery键盘事件介绍
- 20145120 《Java程序设计》第6周学习总结
- Matlab之文件读写
- MFC让控件随窗口大小而改变
- Java学习笔记九(泛型)
- exit()
- 在ubuntu中屏蔽“检测到系统程序出现问题”对话框
- 003.[python学习] 简单抓取豆瓣网电影信息程序
- AtCoder Regular Contest 101
- 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition &; Neural style transfer) —— 1.Practice quentions
- Shaping Regions(dfs)
- python实现微信自动回复机器人
- sklearn:Python语言开发的通用机器学习库
- ORA-04068 / ORA-04065 / ORA-06508 详细说明
- 升级tensorflow1.0到1.3,报错ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory Failed to load the native TensorFlow runtime.
- Hyperscan与Snort的集成方案
- (转)Linux ldconfig 与 ldd指令
热门文章
- HDU 4325 Contest 3
- Chrome插件Axure RP Extension
- Aizu - 2305 Beautiful Currency (二分 + DFS遍历)
- 叫号系统排队系统挂号系统实现(JAVA队列)
- java之IO处理
- Oracle 学习笔记 14 -- 集合操作和高级子查询
- 数据挖掘算法学习(四)PCA算法
- Mysql 数据迁移后 启动出错
- 源泉书签,助您管理海量收藏。www.yuanquanshuqian.com 今日更新:支持了导入url为js代码的书签
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)