
c++
文章平均质量分 58
C++
岚花落_
这个作者很懒,什么都没留下…
展开
-
c++可视化 横向打印二叉树(连线、规整)
这次其实是之前一片博客的改进版。这次的二叉树我们使用了经典的 string + vector + shared_ptr 组合,从而使二叉树代码更直观,同时也把内存管理交由 STL 负责。同样地,本文也遵守 Google 风格,以供大家参考。原创 2022-12-09 20:11:14 · 2042 阅读 · 0 评论 -
c++ 杂谈 右值引用与 std::move()
说到左值与右值的起源,我们甚至可以追溯到 c 语言。}最开始,我们只是称赋值运算符(=)左侧的值为左值,右侧的值为右值。它仅仅是一个称呼,以至于很离谱地:变量既能是左值也能是右值。但是后来,我们变得更加注重两者的区别。左值(loactor value):存储在特定地址的值右值(read value):能提供数据的值左值一般是可供操作的内存地址右值一般是临时的一个结果,包括:字面量、表达式、临时对象等赋值运算符左侧的,一定是左值有名称的,一定是左值对其取地址。原创 2022-11-24 22:52:23 · 274 阅读 · 0 评论 -
c++ 让 std::pair 更好看
pair 的 first 和 second 真的很丑,那么能不能对其进行重命名呢?答案是没问题,我们通过引用实现之。原创 2022-10-27 15:34:20 · 589 阅读 · 0 评论 -
c++中,反转字符串(cstring)的几种方法
一、使用<cstring>的strrev函数#include <iostream>#include <cstring>int main(){ char cstr[5] = "abcd"; strrev(cstr); std::cout << cstr;}二、使用STL的copy函数#include <iostream>using namespace std;int main(){ cha原创 2021-06-29 22:45:41 · 1394 阅读 · 2 评论 -
c++ 整数范围问题
一、模糊估计2^10 = 1024 ~ 10^3而int 是32bit,long long 是64bit,所以:unsigned int : 2^32 ~ 4 * 10^9unsigned long long : 2^64 ~ 16 * 10^18结论:若数据处于[0,10^9]之间,可以使用int若数据处于[0,10^19]之间,可以使用long long一、int 部分#include <bits/stdc++.h>using names...原创 2021-11-12 15:49:23 · 1589 阅读 · 0 评论 -
《数据结构与算法分析——C++描述》 书本源码
找了半天终于是找到了,文件里面有很多完整(含迭代器)的容器类原创 2021-10-11 16:55:11 · 622 阅读 · 0 评论 -
c++ stl vector(手写版)
迭代器还没写完,待更新。之后会有讲解部分原创 2022-04-23 09:48:31 · 1383 阅读 · 0 评论 -
c++数据结构——堆(可重载规则)
数据结构:堆的c++实现,可重载排序规则,使用了模板函数指针原创 2022-04-22 18:30:49 · 1254 阅读 · 0 评论 -
c++ primer plus学习笔记(2.5)——数据类型(指针部分)
本来准备在第二章讲完数据类型的,后来发现实在太多了。虽然c++使用指针的程度不如c,但是我还是想把“c语言的灵魂”详细地讲讲。原创 2021-07-24 18:10:48 · 414 阅读 · 0 评论 -
c++ primer plus学习笔记(2)——数据类型、算术运算符
挖坑一时爽,填坑火葬场。当初复习的时候确实是有很多想说的要点,但是亲手动起笔来才发现多得写不完。。。看来只能慢慢更新了。原创 2021-07-22 16:42:49 · 453 阅读 · 0 评论 -
c++ primer plus学习笔记(1)——基础知识
本人还有一星期要开始期末考试了,复习c++时顺便挖个坑,之后会详细更新。原创 2021-07-20 12:38:52 · 766 阅读 · 0 评论 -
c++ primer plus学习笔记——附录
补充该专栏的例子或表格,与节数对应原创 2021-07-20 11:59:10 · 1526 阅读 · 0 评论 -
c++ primer plus学习笔记(7)——类继承
2.1多继承在这一节,我们将围绕构造函数的发生、方法的二义性进行讨论2.1.1构造、析构顺序:栈原则假如一个test类继承两个基类:base1、base2,下述代码显示了他们的构造顺序。#include <iostream>using namespace std;class Base1{public: Base1() { cout << "Base1 constructor\n"; }; ~Base1() { cout << ".原创 2021-07-07 12:49:44 · 257 阅读 · 0 评论 -
c++ primer plus学习笔记(3)——结构语句、简单输入输出
1.条件语句1.1条件表达式1.1.1效率原则若表达式的一部分已经能确定真值,则后续部分不再执行。如://for exampleint main(){ int a = 10, b = 0; if (a >= 10 || b++ == 0) //(1) ……; if (a > 10 || b++ == 0) //(2) ……; }(1)中b++不执行,因为a>=10已经使表达式为真。而(2原创 2021-07-04 23:55:53 · 163 阅读 · 2 评论 -
c++ primer plus学习笔记(4)——函数
1.函数意义:封装代码块1.1函数的组成其它代码块调用函数时,将实际参数的值赋给函数块的形式参数。随后,函数块可以使用上述变量执行语句。1.1.1函数声明函数声明可重复多次,但是得完全相同格式:ReturnType FunctionName(...);ReturnType指明返回值的类型FunctionName指明函数名...指明函数的特征标(形式参数列表)如://for exampleint max(int ...原创 2021-07-02 21:30:19 · 135 阅读 · 2 评论