菜狗菜
菜狗菜
全部文章
C/C++进阶
C#入门(1)
cocos2d_x学习笔记(2)
操作系统(1)
草稿(2)
设计模式(5)
归档
标签
去牛客网
登录
/
注册
菜狗菜的博客
全部文章
/ C/C++进阶
(共9篇)
迭代器失效问题以及解决方案
我们可以把容器看作为一个小镇。我们可以把迭代器看作为看作为一个房子,而值看作为房子里面的人。 序列式容器 顺序容器,在内存中是一块连续的内存,当插入、删除一个元素后,内存中的数据会发生移动,以保证数据的紧凑。所以删除一个数据后,其他数据的地址发生了变化,之前获取的迭代器根据原有的信息就访问不到正确的...
2021-04-11
0
862
常量对象只能调用常成员函数 原因分析
1. 首先我们需要知道const *p(常量指针)类型无法转换到*p类型(普通指针),但*p能够向const *p转换 #include<iostream> using namespace std; void const_fun( const int* a) { cout <...
2021-04-02
3
2746
四个强制类型转换
1. static_cast 编译器隐式执行的任何类型转换都可以由static_cast显式完成,使代码更易懂老式的C风格的 double 转 int 的写法为: double scores = 95.5; int n = (int)scores;C++ 新风格的写法为: int n = stati...
2021-03-29
1
1111
右值引用、移动语义
一、右值引用 1.左值和右值 C++中的值要么是左值要么是右值。一个左值是指向一个指定内存的东西。另一方面,右值就是不指向任何地方的东西。通常来说,右值是暂时和短命的,而左值则活的很久,因为他们以变量的形式(variable)存在。我们可以将左值看作为容器而将右值看做容器中的事物。 两者区别: ①左...
2021-03-27
0
585
C++函数中值的传递方式与实现原理分析
值传递、引用传递、指针传递 #include<iostream> using namespace std; //值传递 void change1(int n){ cout<<"值传递--函数中n的地址"<<&n<<...
2021-03-21
0
903
栈空间与堆空间等存储区域
1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。 其操作方式类似于数据结构中的栈。 2、堆区(heap) — 在内存开辟另一块存储区域。 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。 如:c中malloc和c++...
2021-03-21
0
1051
深层复制与浅层复制
浅层赋值 将pintsarray类中points size动态分配空间时候 使用系统自带的复制函数 将出现以下情况 浅层复制释放空间时候,释放完一个变量后如delete pointsarray1;pintsarray2的points size指针将找不到对应的内存地址将无法访问;而且再次释放...
2021-03-21
0
561
一道关于指针的题
void foobar(int a, int *b, int **c) { int *p = &a; *p = 101; *c = b; b = p; } int main() { int a = 1; int b = 2;...
2021-03-21
0
481
c/c++难点理解
子类的虚函数会添加到父类虚函数表中 class A //8字节 { char a[3]; public: virtual void fun1(){}; }; class B : public A //12字节 { char b[3]; public: virt...
2021-02-24
0
595