zoukankan      html  css  js  c++  java
  • C++知识点(六)数组、指针与字符串导学

    1.数组

    • 地址连续存放
    • 初始化:
      • 列出全部初始值后,第1维下标个数可以省略
      • 不做初始化,局部变量中为垃圾数据,static变量为0
      • 只对一部分进行初始化,其余数值初始化为0

    2.动态内存分配:

    • new 
    • delete 

    3.动态创建数组

      new p[N]; delele[] p; 

      构造函数和析构函数会被调用N次

    4.动态创建多维数组

      new p[M][N] ;p为指向行的指针

    5.动态数组封装成类

      检查下标越界

    6.智能指针:垃圾回收机制,

      unique_ptr:不允许多个指针共享资源,可用move()转移指针

      shared_ptr:多个指针共享资源

      weak_ptr:可复制shared_ptr,构造和释放对资源不产生影响

    7.vector对象:类模板(数组) 类似动态数组系统封装成类

      作用:封装任何类型的动态数组,自动创建和删除;  数组下标越界检查

      定义:vector<类型> 对象名(长度)

      使用:对象名[下标];对象名.size();

    8.对象的浅层复制和深层复制(复制构造函数)

      浅层复制的问题:当原含有指针的对象复制到新对象时,只复制指针地址,若析构原对象,会把新对象同时析构掉。此时需要深层复制

    9.移动构造

      将源对象的状态转移到目标对象上,

     

      使用场景:返回含有指针成员的对象,

      定义:类名(类名&& 对象)

    10.字符串常量:string类(C++)和字符数组(C风格)

      连续顺序存放,以‘’结尾

      string类常用操作:

    getline(cin,str,','); 输入整行字符,第三个参数是字符串结束的标志分隔符

     

  • 相关阅读:
    From MSI to WiX, Part 2
    From MSI to WiX, Part 1
    WIX Custom Action (immediate, deffered, rollback)
    SVN: revert all command
    HowTo: SVN undo add without reverting local changes
    “Assign Random Colors” is not working in 3ds Max 2015
    CruiseControl.NET : svnrevisionlabeller
    JSON parser error with double quotes
    How to: Extract files from a compiled setup.exe created by Inno setup
    虚拟账号ftp服务器
  • 原文地址:https://www.cnblogs.com/lemon333333/p/10238883.html
Copyright © 2011-2022 走看看