1. 初始化动态分配对象的数组

int *pia=new int[10]; //10个没有初始化的int
int *pia2=new int[10](); //10个初始化为0的int
string *psa=new string[10]; //10个空string
string *psa2=new string[10](); //10个空string
string *psa3=new string[10]{"a","an","the",sting(3,'x')}; //10个string初始化

2. unique_str shared_ptr 数组

unique_str 初始化动态数组时,要在对象类型后加一对空方括号。

// up 指向一个包含10个非初始化int的数组
unique_ptr<int[]> up(new int[10]);//使用下标运算符来访问数组中的元素。
for (size_t i = 0; i != 10; ++i)up[i] = i;up.release(); // 自动调用delete[]销毁其指针// to use a shared_ptr we must supply a deleter
shared_ptr<int> sp(new int[10], [](int* p) { delete[] p; });
// shared_ptrs don't have subscript operator
// and don't support pointer arithmetic
for (size_t i = 0; i != 10; ++i)*(sp.get() + i) = i;  // use get to get a built-in pointer
sp.reset(); // uses the lambda we supplied

【参考】

[1] 代码smartPointer.h

C++ Primer 5th笔记(chap 12 动态内存)动态数组相关推荐

  1. C++ Primer 5th笔记(chap 12 动态内存)智能指针概述

    1. 对象的生存期 内存类型 定义 分配和销毁时机 全局对象 程序启动时分配,程序结束时销毁 静态内存 局部static对象类static数据成员 第一次使用时分配,程序结束时销毁 栈内存 定义在函数 ...

  2. C++ primer 5th笔记

    目录2022年11月25日 周五 阴 第一.二章:变量和基本类型 基本内置类型 unsigned float与double 'A'与"A" 布尔类型转换时 初始化与赋值 初始化 声 ...

  3. c语言动态内存分配数组,【C】动态内存分配

    ## 动态内存分配的意义 C语言中的一切操作都是基于内存的 变量和数组都是内存的别名 内存分配由编译器在编译期间决定 定义数组的时候必须指定数组长度 数组长度是在编译期就必须确定的需求: 程序在运行过 ...

  4. 【原创】VBA学习笔记(12)VBA的数组 array---基础知识(1)

    一 数组 array 1.1 什么是数组?具体的例子 以这个语句为例子 arr1=array(1, 2, 3) 左边:变量名=数组名 右边:数组,集合,多个元素集合,多个数据集合, 右边的单个内容,1 ...

  5. C++ Primer 5th笔记(chap 12 动态内存)shared_ptr

    1. 相关概念 1.1 使用场景 • 程序不知道自己需要使用多少对象 • 程序不知道所需对象的准确类型 • 程序需要在多个对象间共享数据 1.2 实现原理 shared_ptr对象有一个关联的计数器, ...

  6. C++ Primer 5th笔记(chap 12 动态内存)allocator类

    1. 标准库allocator类及其算法 算法 说明 allocator <.T> a 定义了一个名为a的allocator对象,他可以为类型T的对象分配内存 a.allocate(n) ...

  7. C++ Primer 5th笔记(chap 12 动态内存)unique_ptr

    1. 定义 定义一个unique_ptr时,需要将其绑定到一个new返回的指针上. unique_ptr p1; unique_ptr p2(new int(42)); 2. unique_ptr 不 ...

  8. C++ Primer 5th笔记(chap 12 动态内存)weak_ptr

    weak_ptr是一种不控制所指向兑现生存周期的智能指针,它指向一个由shared_ptr管理的对象. 引入lock和expired是防止在weak_ptr 不知情的情况下,shared_ptr 被释 ...

  9. C++ Primer 5th笔记(chap 19 特殊工具与技术)控制内存分配

    1. new void operator new (size_t, void ) ;//不允许重新定义这个版本 string *sp = new string("a value") ...

最新文章

  1. linux md5sum 的用法(转)
  2. python smtp 群发邮件
  3. 鼠标移动过去变大变绿
  4. Python定义函数的三种方式
  5. OPPM 一页纸项目管理 One-Page Project Management
  6. android中ListView控件onItemClick事件中获取listView传递的数据
  7. 5分钟完成业务实时监控系统搭建,是一种什么样的体验?
  8. 购物车完善版,客户余额及所购商品保存在文件
  9. 对 js 高程 Preflighted Reqeusts 的理解
  10. 解决:Error response from daemon: Get https://index.docker.io/v1/search?q=openjdkn=25: dial tcp: looku
  11. java数据类型后缀_java基础知识---基本数据类型
  12. 函数的练习1——python编程从入门到实践
  13. 机器视觉的典型应用及领域分析
  14. Deep_Rank,经典ctr系列预估模型复现框架
  15. 算法(algorithm)、模型(model)与框架(framework)
  16. spark(1)---概述
  17. 景点接口 查询携程旅游门票景点详情
  18. 分别输入5名同学的三门课程成绩,用函数实现每名学生的平均分。
  19. 华为鸿蒙手机充电期间系统将进行深度优化
  20. 物联网+区块链溯源方案

热门文章

  1. Android --- 单一控件覆盖其他控件的方法
  2. uestWrapper.getSession(HttpServletRequestWrapper.java:241) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
  3. java中服务器瘫痪怎么办,跑的好好的 Java 进程,怎么突然就瘫痪了
  4. java 读文件夹_java怎么读取读取文件夹下的所有文件夹和文件?
  5. pdo mysql fetchall_pdo fetch,pdo fetchAll,pdo query,pdo prepare用法举例
  6. lastpass安卓最新版_LastPass
  7. 浮点数例外 (核心已转储)_15000 字梳理 JVM 的核心知识
  8. 人工智能到底威胁人类还是造福人类?
  9. 一颗强健的“心脏”,让海银的业务系统更高效、更安全!
  10. W ndoWs7重启按F11没用,windows7无法正常启动按F8也没有效果的解决方法