
coding
文章平均质量分 63
高级语言语法
圆月弯刀鞘
这个作者很懒,什么都没留下…
展开
-
C++中的类型转换
c++中的类型转换原创 2022-12-02 13:07:27 · 694 阅读 · 0 评论 -
C++线程操作
c++线程原创 2022-11-28 20:34:59 · 1306 阅读 · 0 评论 -
C++对象内存布局(先看总结)
c++对象内存结构原创 2022-11-22 21:50:03 · 954 阅读 · 2 评论 -
C++初始化列表使用与否的区别
初始化列表原创 2022-11-22 16:13:21 · 548 阅读 · 0 评论 -
C++智能指针
c++智能指针原创 2022-11-12 20:28:52 · 940 阅读 · 0 评论 -
B树、B+树和B*树
B树原创 2022-11-07 14:51:03 · 370 阅读 · 0 评论 -
C/C++从汇编指令上看函数的调用过程
c++函数调用过程原创 2022-10-20 11:10:27 · 266 阅读 · 0 评论 -
C/C++进程虚拟内存
虚拟内存分布原创 2022-10-20 10:33:18 · 456 阅读 · 0 评论 -
二叉树常见的问题和解决思路
二叉树的各种操作原创 2022-06-27 23:25:49 · 3383 阅读 · 0 评论 -
一致性哈希算法
服务器负载均衡原创 2022-06-25 15:27:30 · 188 阅读 · 0 评论 -
大数据量查重中的布隆过滤器
布隆过滤器原创 2022-06-17 18:08:05 · 169 阅读 · 0 评论 -
C++中的Associative containers(关联容器)
C++中的无序关联容器原创 2022-06-17 17:39:19 · 388 阅读 · 0 评论 -
C++中的Sequence containers(序列容器)
C++中的序列容器原创 2022-06-17 17:02:37 · 904 阅读 · 0 评论 -
C++中的Container adaptors(容器适配器)
C++中的容器适配器原创 2022-06-17 17:01:40 · 303 阅读 · 0 评论 -
C++中的Array Decay(数组退化)
文章目录一、问题描述二、解决方法一、问题描述将数组传递给函数的时候,数组会退化成指针。 二、解决方法#include "iostream"#include "string"#include "vector"using namespace std;//以指针接受数组时产生Array Decayvoid test01(int *p) { cout << sizeof(p) << endl;}//此种形式依旧不能解决数组退化void te原创 2022-05-23 21:50:46 · 553 阅读 · 0 评论 -
C++对象构造和对象优化
C++对象构造和优化原创 2022-05-20 13:25:09 · 115 阅读 · 0 评论 -
C++容器迭代器
迭代器的失效问题原创 2022-05-08 11:01:32 · 575 阅读 · 0 评论 -
C++容器空间配置器allocator
文章目录一、自己根据逻辑实现的容器二、存在的问题三、解决办法四、空间配置器的实现一、自己根据逻辑实现的容器template<typename T>class SeqStack {public: SeqStack(int size = 10) : _size(size), _top(-1) { _pstack = new T[size]; } SeqStack(const SeqStack<原创 2022-05-07 19:00:16 · 682 阅读 · 0 评论 -
C++模板
文章目录一、函数模板二、类模板一、函数模板template<typename T> //模板的参数列表bool compare(T a, T b) { //函数的模板 cout << "compare template" << endl; return a > b;} 模板实例化//函数调用点compare<int>(10, 11) //在函数调用点,编译器使用用户指定的类型,从原模板实例化一原创 2022-05-07 18:29:56 · 342 阅读 · 0 评论 -
C++语言级别的类型转换
文章目录一、const_cast二、static_cast三、reinterpret_cast四、dynamic_cast一、const_cast把常量属性去掉的类型转换const_cast只能去除const限制,其他的类型不能转换,const_cast只能用于指针或引用 二、static_cast提供编译器认为安全的类型转换(没有任何关联的类型之间不允许转换),编译时期的类型转换。 三、reinterpret_cast类似于C风格的强制类型转换(不一定安全)&nb原创 2022-05-06 19:24:23 · 480 阅读 · 0 评论 -
C++继承和多态
继承和多态原创 2022-05-05 22:15:20 · 2976 阅读 · 0 评论 -
C++中两个头文件相互包含
文章目录一、问题描述二、解决方法一、问题描述 A.h#ifndef A_H#define A_H#include "B.h"class A{ typedef vector<string>::sizetype size_type; B b;}#endifB.h#ifndef B_H#define B_H#include "A.h"class B{ A::size_type num;}#endifA.h和B.h相互包含会编译错误原创 2022-05-04 17:04:18 · 1643 阅读 · 0 评论 -
enum和enum class的区别
文章目录一、作用域问题二、隐式转换一、作用域问题enum Gender{ BOY, GIRL};enum Stu{ BOY, //报错,因为Gender中的BOY作用域为全局作用域,Stu中的BOY也是全局作用域,重复定义 GIRL //原因同上}; enum class Gender{ BOY, //作用域为Gender GIRL};enum class Stu{ BOY, //作用域为Stu与Gender原创 2022-05-03 21:49:44 · 361 阅读 · 0 评论 -
C++中的流
文章目录一、C++中流的架构二、iostream三、fstream四、文件读写方式五、文件流的定位六、sstream一、C++中流的架构二、iostreamiostream对istream对象cin和ostream对象cout进行了封装 三、fstream标准流程建立和文件的连接读或写文件关闭连接#include <iostream>#include <fstream>using namespace std;int main() {原创 2022-05-03 21:26:10 · 389 阅读 · 0 评论 -
new / malloc / delete / free之间的区别
文章目录一、区别二、new的不同使用方法三、工作原理一、区别malloc和free是C的库函数new和delete是运算符new可以做内存的开辟和初始化操作,不需要类型转换malloc只能开辟内存,不能做初始化,需要类型转换malloc开辟内存失败是通过判断返回的指针是否nullptrnew开辟内存失败是通过抛出bad_alloc类型的异常进行判断malloc开辟数组内存后free的时候和普通变量方式相同而delete释放数组的内存空间时需要加 []new创建实例对原创 2022-04-29 20:11:50 · 232 阅读 · 0 评论 -
C/C++中的static
static〇、内存区域和初始化时机已经初始化的static成员存在于.data段,未初始化的在.bss段,都初始化为0。C和C++中静态局部变量的初始化方法不同。C中,初始化发生在代码执行之前,编译阶段分配好内存之后,就会进行初始化,所以在C语言中无法使用变量对静态局部变量进行初始化。C++中,初始化时在执行相关代码时才会进行初始化,主要是由于C++引入对象后,要进行初始化必须执行相应构造函数原创 2022-04-27 20:04:42 · 914 阅读 · 0 评论 -
C/C++中的const
const原创 2022-04-27 19:33:33 · 1193 阅读 · 0 评论 -
C++和python中的类
文章目录一、C++中的类1.public和private2.构造函数2.1默认构造函数和自定义构造函数2.2拷贝构造函数2.3赋值重载函数3.析构函数4.类中的static5.构造函数的初始化列表5.类中的const6.组合和聚合6.1组合(Compostion)6.2聚合(Aggregation)7.成员函数的定义8.指向类内成员的指针9.类的深入理解二、python中的类1.访问权限2.类属性,实例属性,类方法,实例方法,构造函数,析构函数,静态方法一、C++中的类 1.public和原创 2022-04-24 13:45:07 · 2437 阅读 · 0 评论 -
C/C++中的一些注意事项
文章目录1.结构体赋值相当于内存复制2.枚举的使用技巧3.C和C++中的头文件4.同名局部变量和全局变量的区别5.形参带默认参数的函数注意事项6.inline函数注意事项7.extern的省略问题8.C++和C源码互相调用的问题9.函数参数压栈时机10、访问权限的确认时机1.结构体赋值相当于内存复制struct stu{ int age; string name;};struct stu s1,s2;s1.age = 10;s1.name = "Jack";//赋值相当于内存复制s2原创 2022-04-22 20:20:17 · 743 阅读 · 0 评论 -
C/C++和python中的字符串
文章目录一、C语言中的字符串二、C++中的字符串三、C和C++中字符串的不同3.1 C中的字符串内存结构3.2 C++中的字符串有动态分配空间的机制四、python中的字符串一、C语言中的字符串C语言中使用一个以’\0’结尾的字符数组来表示一个字符串;使用字符串相关函数需要引入库"string.h";C和C++严格区分单引号和双引号,单引号只能用来表示单个字符。#include "stdio.h"#include "string.h"int main() { char a[] =原创 2022-04-13 20:17:13 · 2229 阅读 · 0 评论 -
C++引用和指针之间的关系
文章目录一、引用的使用二、引用的本质三、引用和指针的区别和联系四、左值引用和右值引用五、引用和指针结合一、引用的使用在使用层面,引用相当于变量的别名,使用方式和普通的非指针变量完全相同,可以简单的理解为为同一块内存区域取了不同的名字,使用每个名字都可以等效的对内存区域进行操作。 二、引用的本质int a = 100;int &b = a;int a = 100;int * const b = a;以上两段代码是等价的,C++在底层实现引用机制的时候,用的就是常指针。原创 2022-04-13 17:06:05 · 690 阅读 · 0 评论 -
C/C++指针和数组之间的区别
文章目录〇:c语言中左值、右值和赋值操作一、数组相关操作和概念二、数组和指针的区别和联系三、指向数组的引用〇:c语言中左值、右值和赋值操作x = y;左值:在上下文环境中,编译器认为x的含义是x所代表的地址。这个地址只有编译器知道,在编译的时候确定,编译器在一个特定的区域保存这个地址。右值:在这个上下文环境中,编译器认为y的含义是y所代表的地址里面的内容,这个内容是什么,只有到运行的时候才知道。一、数组相关操作和概念1.搞清楚数组做左值和右值的区别,对理解指针数组很重要,如下代码中第2行和原创 2022-04-12 23:23:35 · 1203 阅读 · 0 评论 -
C/C++和python中的函数参数传递
目录一、C/C++中的函数参数传递二、python中函数的参数传递问题一、C/C++中的函数参数传递1.C/C++中的普通参数传递和指针参数传递本质上都是值传递,只不过当使用指针接收实参传递的时候,传过来的是地址,所以函数中的任何操作都会对实参产生影响。2.另一种方式是引用传递,但是和值传递不同的是,它并没有进行拷贝操作,而是相当于给实参一个“别名”来达到操作实参的目的。使用方式如下:#include<iostream>void reset(int &a){ a = 0;原创 2022-03-26 13:07:18 · 3148 阅读 · 1 评论 -
C/C++和python中的输入,输出
目录一、C语言中的输入和输出二、C++中输入输出三、python中的输入输出一、C语言中的输入和输出1.printf("%d\n",a); scanf("%d %c", &a,&b);是stdio.h中的格式化输出输出常用的格式化符号有%d, %f, %u, %c, %s, %ld, %lld, %x, %o, %p注意:scanf()使用的时候输入的格式必须和双引号中的格式对应。而且scanf()在输入遇到空格的时候会将空格前的内容进行输入。2.int getchar(void原创 2022-03-25 21:01:33 · 2611 阅读 · 0 评论