您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 合肥分类信息网,免费分类信息发布

c++中的动态数组和动态结构体、string类学习总结

2020/6/10 16:46:58发布178次查看

大家周末好,今天给大家分享c++中的动态数组和动态结构体以及string类的学习总结,在今天写文章之前,给大家分享一个可以面试刷题的地方,如果大家平时没啥事情或者离面试时间比较久,可以尝试去牛客网里面去刷题,如下图所示:
图1
题库里面有企业面试题目,面试里面有一些网友的面试经验分享,对于缺乏面试经验的网友,我觉得非常不错的机会来提升自己。
一、动态数组:
1、面向对象编程与传统的过程性编程的区别:
面向过程编程它主要是强调在运行阶段(不是在运行阶段)进行决策。运行阶段指的是程序正在运行,编译阶段指的是编译器将程序组合起来时;一个比较形象的比喻:运行阶段就好比度假时,选择参观哪些景点取决于天气和自己的心情(这种方式就比较灵活了);而编译阶段更像是不管什么情况下,都坚持之前的决定(这种方式的话就比较死板了)。
2、动态数组的创建:
(1)首先你的弄明白啥动态数组,从字面意思来看,就是这个数组是动态的,可控制的,也就是我们刚才提到的面向过程编程,它侧重程序在运行阶段,这也就是意味着我们动态数组,在运行阶段的时候,如果程序员确实需要它,程序员就可以来创建它;如果不需要它,那么程序员就不用来创建它。
(2)创建动态数组通用书写格式:
type_name *pointer_name = new type_name [num_elements]
我们来看实际例子:
//new运算符返回第一个数组元素的地址,并把该地址赋给指针p
int *p = new int[10];
这里还用两种方式来创建动态数组:第一种就是使用模板类vector;第二种使用模板类array(更方便,更加安全)
#include <vector>
using namespace std;
int n;
cin>>n;
vector(int) vi(3);
vi[0]=1;
vi[1]=2;
vi[2]=3
#include <array>
using namespace std;
array<int ,5> ai = {1,2,3,4,5};
(3)回收使用new运算符分配的内存空间:
delete [] p;
注:我们在c语言里面使用malloc分配内存大小,使用free来释放分配的内存大小。
同时我们这里可以看到有一个"[]",这个就是要注意一个使用规则了:如果使用new时,带"[]",则使用delete释放内存也要带;反之亦然。下面是错误的使用例子:
int *pt = new int;
short *ps = new short[34];
delete [] pt;  //error
delete ps; //error
二、动态结构体:
1、创建动态结构体:
动态结构体的概念和动态数组的概念理解一致。我们现在来看一下动态结构体时如何被创建的:
inflatable *p = new inflatable;
这里将把存储inflatable(表示结构体类型)结构的一块可用内存的地址分配给指针p了。实际例子如下:
strcut ti{
int good;
int bad;
}
ti p =  new ti;
三、string类:
大家应该都知道在c语言里面我们是没用用来表示字符串的数据类型的关键字的,但是我们在c++里面可以使用string关键字来表示字符串数据类型。以前在c语言里面我们要表示字符串的话,一般是下面这种方法来表示:
char a[12] = "hello world";
现在我们在c++里面就可以直接使用string来表示一个字符串定义了,不用用数组法那么麻烦了:
string str1;
string str2 = "hello world";
str1=str2;
str2[1] = e;
我们可以看到使用string来定义字符串,可以把它赋值给别的字符串变量(正确的说应该是string类实例化的一个对象),同时要访问字符串里面的元素,也可以采用数组下标的方式来访问;同时也可以进行字符串合并:
str3=str1+str2;

合肥分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录