C++
文章平均质量分 50
ZengXincs
Gonna Be a Better Man
展开
-
Chapter 3 of Effective C++ (资源管理)
同时,若通过copy构造函数或copy assignment操作符复制它们,它们会变成null,复制所得的指针会取得资源的唯一拥有权!其具有的问题事,无论delete如何被略过去(中间发生return,异常退出或goto等),我们泄露的资源不只是内含投资对象的那块内存,还包括那些投资对象所保存的任何资源。auto_ptr是个“类指针对象”,其析构函数自动对其所指对象调用delete。(auto_ptr现已被抛弃)为防止资源泄露,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。原创 2024-03-21 23:22:46 · 382 阅读 · 0 评论 -
Chapter 2 of Effective C++ (构造/析构/赋值运算)
默认生成的copy构造函数和copy assignment操作符只是单纯的将源对象中的每一个non-static成员变量拷贝到目标对象(浅拷贝)。若一个类中存在const成员或引用成员,则不能使用默认生成的拷贝赋值操作符。原创 2024-02-26 22:17:12 · 466 阅读 · 0 评论 -
Chapter 1 of Effective C++
c++并不是一个带有一组守则的一体语言,它是由四个次语言组成的联邦政府(c, Object-Oriented C++, Template C++, STL),每个次语言都有自己的规约。条款01:视C++为一个语言联邦。原创 2024-01-15 00:02:22 · 442 阅读 · 0 评论 -
如何设计一个泛型算法
1 返回一个新的vector,其中包含原vector中小于特定值的所有数值。2 如果允许用户指定不同的比较操作,怎么将“比较操作”参数化呢。原创 2022-11-13 20:56:51 · 175 阅读 · 1 评论 -
C++ Cherno 左值,右值,移动语义,std::move
① 用一个对象a创建另一个对象b(b中存储a)时。② 从函数中返回一个对象(返回值优化也可解决?2 不能将右值赋值给左值引用 (左值引用的只能是左值)1 左值是有某种存储支持的变量,右值是临时值。b) 移动语义本质上允许我们移动对象。原创 2022-11-06 17:25:14 · 265 阅读 · 0 评论 -
字符串赋值给字符指针(char *a=“hello“)的正确理解方式
则将会从字符数组的首地址开始复制,如果字符数组中明确指定了'\0'元素,则会在'\0'处停止,而若没有'\0'元素,则程序可能会不停的复制,直到在程序的内存中碰到'\0',这样可能会得到不希望的结果。//这种方式由系统自动给该字符指针指定了一个内存中的位置,并且该位置的字符数组为{'a', 'b', 'c', 'd', 'e', 'd', '\0'};因为定义的是一个字符数组,所以就相当于定义了一些空间来存放"abc",而又因为字符数组就是把字符一个一个地存放的,所以编译器把这个语句解析为。转载 2022-08-23 22:37:05 · 5410 阅读 · 1 评论 -
C++ vector erase and remove
代码】C++ vector erase and remove。原创 2022-08-10 14:56:25 · 278 阅读 · 0 评论 -
AcWing 算法基础课 C++ 学习 (Day31 - Day60)
代码】AcWing算法基础课C++学习(Day31-Day60)原创 2022-07-31 23:17:42 · 466 阅读 · 1 评论 -
C++ 访问权限
C++ 访问权限原创 2022-07-14 20:46:20 · 586 阅读 · 0 评论 -
nowcoder C++ 应试题(857)
1. 动态多态是由纯虚函数实现的。 错误,是由虚函数和重写实现的2. ③是错的3. 输出 1原创 2022-06-21 22:29:00 · 328 阅读 · 0 评论 -
Cherno C++ basic
Day 1 (2022.4.26)// 在#后面的都是预处理语句,编译器收到源文件后首先处理预编译语句(发生在实际编译之前)// #include <iostream> 将iostream文件的所有内容拷贝到当前文件,之所以要拷贝,是因为需要一个被 // 调函数的声明// main函数不写return则默认返回0// 重载运算符其实是函数std::cout.print("Hello World!").print(std::endl);// std::cin.get() 等原创 2022-04-27 00:23:12 · 1051 阅读 · 0 评论 -
AcWing 算法基础课 C++ 学习
Day 1 (2022.5.14)// AcWing 785. 快速排序#include <iostream>using namespace std;const int N = 100010;int q[N];void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[(l + r) >> 1];原创 2022-05-14 21:54:36 · 505 阅读 · 0 评论 -
C++ 基础语法课 - AcWing
Day 1 (2022.4.16)cin cout printf scanf 都在头文件iostreamscanf的读入数据不管是空格或者一行隔开,都可以直接读入(只用scanf不用std命名空间)Day 2(2022.4.17)string 这个库是在iostream里面有的,且只能用cin来读。abs在iostream有。#include <iostream>using namespace std;int main(){ ...原创 2022-03-18 16:31:18 · 1575 阅读 · 0 评论 -
stdafx.h的意义
stdafx.h is a file, generated by Microsoft Visual StudioIDEwizards, that describes both standard system and project specificinclude files that are used frequently but hardly ever change. The AFX in stdafx.h stands for Application Framework eXtensions. AFX原创 2022-01-17 23:28:39 · 399 阅读 · 0 评论 -
C++ define 和 typedef 的区别
1. define 的用法#define 为宏定义语句,通常用它来定义常量(包括无参量与带参量),它在预处理过程就已经完成了,因此难以发现其潜在的错误。#define TRUE 1;#define Add(a,b) ((a)+(b));2. typedef 的用法typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。typedef原创 2022-01-16 14:53:19 · 379 阅读 · 0 评论 -
C++单链表节点及insert函数,将参数v按从小到大顺序插入到链表,并返回节点指针
节点:struct Node{ int data; Node *next; Node(){ data = 0; next = NULL; }}节点的插入(让 p 的后继结点改成 s 的后继结点,再把结点 s 变成 p 的后继结点):s->next = p->next;p->next = s;节点的删除:p->next=p->ne...原创 2019-10-16 20:55:22 · 2600 阅读 · 0 评论 -
指针,地址,指针变量之间的区别和联系
指针是C和C++的重点,也是后面学习数据结构的基础,因此深刻理解指针的概念很重要。但是指针的概念比较抽象,难于理解,而且一些复杂的程序中都是离不开指针的,如果不能理解指针,那么就不能理解较为复杂的程序了,作者结合了自己学习C++的经验,对指针,指针变量,地址作如下阐述。1.什么是指针: 程序中最离不开的就是变量,而变量相当于是一个容器,是用来存放数据的,变量是存放在内存中的...转载 2019-05-05 13:30:11 · 7052 阅读 · 0 评论