
C++
ZB1139
路漫漫其修远兮
展开
-
联合类型union
1) 在一个联合体内,我们可以定义多个不同类型的成员,这些成员将会共享同一块内存空间。2) 任何非引用类型都可以成为联合体的数据成员原创 2021-06-19 08:52:38 · 303 阅读 · 0 评论 -
枚举类型笔记
enum color_set1 {RED, BLUE, WHITE, BLACK} color1, color2;1)可以把枚举值赋值给枚举变量,如color = red不能直接将常量赋给枚举变量。如: color1=1; //非法转载 2021-06-19 08:35:35 · 312 阅读 · 0 评论 -
枚举enum类型
enum是枚举类型,枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举 weekday 的元素再作以下赋值: sun=5; mon=2; sun=mon;都是错误的。2. 枚举元素本身由系统定义了一个表示序号的数值,从 0 开始顺序定义为 0 , 1 , 2… 。如在 weekday 中, sun 值为 0 , mon 值为 1 , …,sat 值为 6 。【例】123456789in...转载 2021-05-26 11:12:19 · 467 阅读 · 0 评论 -
用模板new一个对象
1)如果是一个普通的类 Person0#include <iostream>#include <string>using namespace std;class Person0{public: Person0(string name, int age) { this->mName = name; this->mAge = age; } void showPerson() { cout << "name: " <&l原创 2021-04-23 16:33:06 · 304 阅读 · 0 评论 -
调用了析构函数为什么还要使用delete?
在学习侯捷老师析构函数这里遇到这样一个问题String S1();String S2("hello");//不用手动调用的时候,离开作用域, 无需手动去调用对象的析构函数,系统会自动调用~String.String *p = new String("hello");delete p;//疑问:为什么这里还需要手动释放?找到这样一个回答:其实是两个意思. 前面的析构函数是, 释放成员指针*m_data指向的动态分配的内存new char[]. 而后面这个delete,是..原创 2021-04-19 09:27:23 · 1216 阅读 · 1 评论 -
2017 开发人员命令提示符 查看派生类中继承的成员
1)2)先跳转到.cpp文件所在目录3)输入:(c后面跟着的是L的小写,不是1) 查看Inheritance.cpp文件中的son类成员c1 /d1 reportSingleClassLayoutson Inhertitance.cpp原创 2021-04-11 18:16:43 · 176 阅读 · 0 评论 -
vector的容量相关函数C++ Primer
1) c.reverse(n): 分配至少能容纳n个元素的内存。 只有当需要的内存空间超过当前容量时,reserve调用才会改变vector的容量,reserve改变capacity 当需求小于或等于当前容量:reserve什么也不做。2) c.capacity():不重新分配内存空间的话,c最多可以保存多少元素。3)resize()只改变容器中元素的数目(size),而不是容器的容量,但不改变capacity 没法释放vector的内存,多删少补并初始化,需要默认初始化的,...原创 2021-04-11 13:23:36 · 182 阅读 · 0 评论 -
C++Primer 400页 内存
对象生命周期: 全局对象:在程序启动时分配,在程序结束时销毁。 局部自动对象:当我们进入其定义所在程序块时被创建,在离开块时被销毁。 局部static对象:在第一次使用前分配,在程序结束时销毁静态内存:保存局部static对象、类static对象、定义在任何函数之外的对象,由编译器自动创建和销毁。栈内存:保存定义在函数之内的非static对象,栈对象仅在定义的程序块运行时才存在除了静态内存和栈内存,每个程序还拥有一个内存池,这部分内存被称为自由空间或堆,程序用堆来存...原创 2021-04-10 17:22:33 · 123 阅读 · 0 评论 -
C++设计一个类,有三个unsigned成员,表示年月日.构造函数,接受表示日期的string参数,能够处理不同的数据格式
#include<iostream>#include<string>using namespace std;class Date{public: unsigned _year; unsigned _month; unsigned _day; void _show() { cout << _year << "年" << _month << "月" << _day << "日" <&l转载 2021-02-26 12:20:47 · 432 阅读 · 0 评论 -
C++ 编写程序输出最长的既不包含上出头部分,又不包含下出头部分的单词
选自C++ Primer 第五版的9.49练习题#include<iostream>#include<string>using namespace std;int main(){ string s = "acenmorsuvwxz"; int max = 0;//最大不出头序列的长度 int first = 0;//查询的首位置 int last = 0;//查询的末位置 int start = 0;//记录最大不出头序列的第一个下标 string str="原创 2021-02-25 17:47:24 · 294 阅读 · 1 评论 -
编写函数,接受三个string参数,s,oldVal,newVal.使用迭代器和erase和insert函数,将所有oldVal替换为newVal
C++ Primer 练习题 9.4.3#include <iostream>#include <string>using namespace std;void replace_function(string &s, const string &oldVal, const string &newVal) {//采用引用的形式,节约复杂度.除了s以外,其余两个应该为常量引用,不能更改 int len1 = oldVal.size(); string原创 2021-02-25 10:53:37 · 1274 阅读 · 3 评论 -
C++返回数组指针(函数返回的是指针,该指针指向一个数组)
参考C++ Priner 第五版使用默认带维度的形式int (*func(int i)) [10];//由内到外层层外推,返回一个指向有10个int类型数组的指针2)使用类型别名typedef int arr[10];using arr = int[10];//和上一句等价.把数组用一个简短的别名代替arr* func(int i);//返回arr类型的指针,实际上就是返回一个指向有10个int类型数组的指针3)使用尾置返回类型(C++新标准)auto func(int i) -&g原创 2021-01-31 10:33:32 · 339 阅读 · 0 评论 -
C++ 中的头文件(.h)和源文件(.cpp)的理解和使用
参考文献: https://www.cnblogs.com/fenghuan/p/4794514.html讲清了最近学习中遇到的一些细节问题,想收藏保存并分享一下,侵权立删.转载 2021-01-28 17:23:05 · 363 阅读 · 0 评论 -
形参和实参的区别
C++ Primer 第五版 6.1练习形参:1)是在函数声明和定义中所使用的.用于接收调用该函数时所传递的参数.2)在调用函数前,它不会被分配内存空间,更不会被赋予具体的值。调用函数时,形参会被分配一个新的内存空间,实参的值就会被“复制”进去,让它在被调函数中参与运算。而实参本身不参与这个运算,它仅仅起到一个传递值的作用.实参:1)是在函数调用中所传递给函数的值.2)实参在程序中已经分配了内存空间,它可以被赋予一个具体的值...原创 2021-01-27 22:15:09 · 179 阅读 · 0 评论 -
C++ 捕获整数除以0 的异常
选自 C++ Primer 第五版 5.25 练习题#include <iostream>using namespace std;int main(){ try { int a = 0, b = 0; cin >> a >> b; if (b == 0) { throw runtime_error("不能除以0");//抛出异常 } cout << a / b; } catch (runtime_error err)原创 2021-01-26 12:38:23 · 925 阅读 · 0 评论 -
C++读取string对象直到连续出现两个相同的单词或者所有单词读完为止
本文来自C++ Primer 第五版 课后练习5.20题#include <iostream>#include<string>//用到了string,所以头文件里要包含using namespace std;int main(){ string s0,s1; bool flag = true;//初始化为真值 cin >> s0;//前面一个值 while (cin >> s1) {//后面一个值 if (s0 == s1) {//两者相原创 2021-01-26 11:19:45 · 168 阅读 · 0 评论 -
C++ 读取若干string对象,记录连续重复出现的最大次数和对应单词.
本文来自C++ Primer 第五版 5.14.思路类似于 https://blog.youkuaiyun.com/qq_42110350/article/details/111831747#include <iostream>#include<vector>#include<string>using namespace std;int main(){ vector<string> strings;//用于接收不同字符串的数组 vector<原创 2021-01-24 23:54:42 · 371 阅读 · 0 评论 -
C++ const 和 指针 的用法
const 和 指针 组合在一起有 4种形式。总结:1)const 在 *的左边 : 指针所指向的对象是一个常量。 常量本身不能被修改,也不能通过指针去修改。 注意事项:只要所指的对象是常量,必须要用const放在*左边来修饰指针,而不能使用普通的指针。const int i = 3;//定义一个常量const int j = 4;const in...原创 2020-04-06 11:19:48 · 280 阅读 · 0 评论 -
C++ string
C++ primer 76页定义和初始化 string 对象string s1 ; //默认初始化,s1是一个空字符串1)注意:该 string 对象是一个字符串,其中没有任何一个字符, ‘\0’ 也没有!2)字面值:比如字面值 “abcd”,其中是包含 5 个字符。因为末尾还有一个’\0’ 的空字符。所以,sizeof(“abcd”) 的结果是 5.3)如果写成string s2 = “abcd”;这样就只把除了空字符以外的字符,拷贝到了这个s2对象中.s2.length()原创 2021-01-03 19:44:25 · 1335 阅读 · 2 评论 -
C++ 指针、常量和类型别名
在《C++ Primer》61页看到这个,有点绕。typedef char *pstring;const pstring cstr = 0; //cstr 是一个指向char 类型的常量指针???const pstring *ps ;//ps首先是一个指针。并且它指向的是一个char类型的常量指针我看到第二行的时候,当时的反应就是const pstring cstr = 0;替换为const char* cstr, 也就是 const char *cstr;//这样的话,就表示cstr是一原创 2021-01-01 20:39:31 · 319 阅读 · 0 评论 -
读取并统计每种字符串的的个数
在C++ Primer 第五版这本书上的1.5.2练习部分的1.23,有个题目是:读取多条销售记录,并统计每个ISBN(每本书)的销售记录。在这里我简化了思想:读取并统计每种字符串的的个数#include <iostream>using namespace std;int main(){ string item; string isbn[10];//保存字符串的数组 int isbnnum[10] = { 0 };//保存每种字符串的个数 int i = 0; cin &g原创 2020-12-29 21:41:36 · 423 阅读 · 0 评论 -
C++ 统计在输入中每个值连续出现了多少次
本问参考《C++ Primer》第五版 15页。#include <iostream>using namespace std;int main(){ int val = 0, currVal = 0; if (cin >> currVal) {//先读取了第一个值, int cnt = 1;//默认当前第一个值的个数为1 while (cin >> val) {//然后拿后面的值来和前面的值作比较 if (val == currVal) ..原创 2020-12-28 10:24:32 · 1134 阅读 · 3 评论 -
C++左值和右值
1)概念左值指既能够出现在等号左边,也能出现在等号右边的变量;右值则是只能出现在等号右边的变量。左值是指那些求值结果为对象或者函数的表达式。一个表示对象的非常量左值,可以作为赋值运算符的左侧运算对象;右值是一种表达式,其结果是值而非值所在的位置 (摘选自C++ Primer 149页)左值代表一个在内存中占有确定位置的对象(换句话说就是有一个地址)。右值一般是没有地址的常量,或在表达式中创建的无名字的临时对象。(参考如下博客https://blog.youkuaiyun.com/xuwqian原创 2021-01-23 12:32:24 · 205 阅读 · 0 评论