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风格)

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

  string类常用操作:

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

 

 

 

 

 

转载于:https://www.cnblogs.com/lemon333333/p/10238883.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android应用开发—知识点汇总

获取Fragment的context&#xff1a; getActivity().getApplicationContext()或者getActivity()You can use getActivity(), which returns the activity associated with a fragment.The activity is a context (since Activity extends Context).设置TextView的颜色setTextCol…

条件渲染vue

v-if:只渲染一次的情况下&#xff0c;性能更好v-show:频繁切换性能更好 vue虚拟DOM技术 浏览器&#xff1a;渲染引擎&#xff08;慢&#xff09;JS引擎&#xff08;快&#xff09; 用1个JS对象来充当DOM对象&#xff0c;因为JS对象性能比较快&#xff0c;所以用虚拟DOM对象进行…

钱线观察:货币基金T+0驾到 活期存款将死?

导语&#xff1a;即使没有任何投资风险&#xff0c;通胀也在侵蚀居民的财富&#xff0c;现金是不安全的。最近出现的一项业务&#xff0c;货币基金"T0"赎回&#xff0c;意味着货币基金可以像活期存款一样即时取现&#xff0c;而其收益率普遍高于活期存款。因此有人认…

git stash和git stash pop

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 git stash 可用来暂存当前正在进行的工作&#xff0c; 比如想pull 最新代码&#xff0c; 又不想加新commit&#xff0c; 或者另外一种情…

CentOS 7.0 上安装和配置 VNC 服务器

作为一个系统管理员&#xff0c;大多数时间是通过网络管理服务器的。在管理服务器的过程中很少会用到图形界面&#xff0c;多数情况下我们只是用 SSH 来完成我们的管理任务。在这篇文章里&#xff0c;我们将配置 VNC 来提供一个连接我们 CentOS 7 服务器的方法。VNC 允许我们开…

Android应用开发—TextView的动态创建

动态创建TextView的两种方式&#xff1a; 下面介绍两种创建方式&#xff1a; 在drawable里面创建共同依赖的background.xml文件&#xff0c;里面设置shape来设置文本框的一些特殊效果&#xff1a; eg&#xff1a; <?xml version"1.0" encoding"utf-8"…

Mongo DB 简单搭建和部署

1.先下载源代码包 官网下载地址&#xff1a;http://www.mongodb.org/downloads 2.解包tar xf mongodb-linux-x86_64-rhel62-3.2.7.tgz 3.把包移动到 /usr/local/mongodb mv mongodb-linux-x86_64-rhel62-3.2.7/ /usr/local/mongodb 指定同一时间最多可开启的文件数&#xff08…

运算符优先级 必熟记,放到心里

优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 &#xff08;表达式&#xff09;/函数名(形参表) . 成员选择&#xff08;对象&#xff09; 对象.成员名 -> 成员选择&#xff08;指针&#xff0…

可持久化平衡树(FHQ Treap)

两个最基本的操作 merge合并 split分割 merge 把两棵treap合并成一棵treap&#xff0c;要满足T1最大值要比T2最小值小&#xff0c;比较将随机数值key值更大的作为合并后的根 假设T1作为根节点作为新子树的根&#xff0c;左子树不变&#xff0c;右子树对T1原来的右子树与T2再递归…

Git 分支管理-git stash 和git stash pop

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 合并分支&#xff0c;冲突是难免的&#xff0c;在实际协作开发中我们遇到的情况错综复杂&#xff0c;今天就讲两个比较重要的命令使用gi…

useState语法讲解

useState语法讲解 语法定义 const [state, dispatch] useState(initData)state&#xff1a;定义的数据源&#xff0c;可视作一个函数组件内部的变量&#xff0c;但只在首次渲染被创造。dispatch&#xff1a;改变state的函数&#xff0c;推动函数渲染的渲染函数。dispatch有两…

NSOperation的进阶使用和简单探讨

本文将会从多个方面探讨NSOperation类和NSOperationQueue类的相关内容 一、简介 NSOperation类是iOS2.0推出的&#xff0c;通过NSThread实现的,但是效率一般。 从OS X10.6和iOS4推出GCD时&#xff0c;又重写了NSOperation和NSOperationQueue&#xff0c;NSOperation和NSOperati…

Android应用开发—LayoutParams的用法

Android应用开发—TextView的动态创建 这篇文章讲到了“TextView控件布局位置的控制”&#xff0c;主要依赖于RelativeLayout.LayoutParams的使用&#xff0c;本文简单介绍下LayoutParams的用法 注&#xff1a;本文大部分内容参考android,利用layoutParams代码动态布局空间位置…

廖雪峰Java1-2程序基础-7布尔运算符

布尔运算符 关系运算符&#xff1a;>&#xff0c; >&#xff0c; <&#xff0c; <&#xff0c; &#xff0c;!与运算 &&或运算 |非运算 &#xff01;int n 5;boolean t n > 0;//trueboolean f n < 0;//falseboolean isFive n 5;//trueboolean i…

第二十一届国际C语言混乱代码大赛结果公布

摘要&#xff1a;国际C语言混乱代码大赛&#xff08;IOCCC, The International Obfuscated C Code Contest&#xff09;是一项著名的国际编程赛事&#xff0c;从1984年开始到2006年&#xff0c;每年举办一次。2006年后中止了多年&#xff0c;2011年又开始恢复。比赛的目的是写出…

QuartZ Cron表达式

CronTrigger 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 CronTriggers往往比SimpleTrigger更有用&#xff0c;如果您需要基于日历的概念&#xff0c;而非SimpleTrigger完全指定的时间…

maven02-----Maven项目构建的初次使用

一. 创建Maven项目 1.1 建立一个Hello项目 当然也可以通过java project的方式创建符合Maven约定的目录结果的项目&#xff0c;并手动建立pom.xml文件&#xff0c;但是太繁琐了。因此&#xff0c;这里直接建立maven项目。note: eclipse有内建的maven项目创建功能&#xff0c;倘若…

微软超过苹果 成为全球第一大市值公司

11月23日周五盘中至收盘&#xff0c;微软市值正式超过苹果&#xff0c;成为世界上市值最高的公司。收盘时&#xff0c;微软市值为7533.4亿美元&#xff0c;苹果市值为7468.2亿美元&#xff0c;亚马逊市值为7366.2亿美元&#xff0c;谷歌市值为7255.2亿美元。 上次苹果与微软市值…