C/C+
呈序员
这个作者很懒,什么都没留下…
展开
-
C/C++注意点
类的内存分配(注意内存对齐) 设指针的内存占ptr_size字节(32位是4字节,64位是8字节) 1.普通类class A{ public: int a;//4个字节 char b;//1个字节 void f(){//不占内存 cout<<"A"<<endl; }};原创 2018-08-28 14:38:02 · 119 阅读 · 0 评论 -
C语言位操作中指定的某一位数置0、置1、取反
https://blog.csdn.net/qq_37858386/article/details/78419911data|=(1<<n); //第n位置1data&=~(1<<n); //第n位置0data^=(1<<n); //第n位取反(data>>n)&1; //取第n位的值x为0或者1...原创 2018-09-26 08:58:58 · 11020 阅读 · 1 评论 -
多线程和线程安全
多任务多任务分为:基于进程和基于线程基于进程:是程序的并发执行基于线程:是同一程序的不同片段的并发执行创建线程原创 2018-10-05 22:16:48 · 166 阅读 · 0 评论 -
杂
引用是否占用空间引用可以理解为一个常量指针,实际是占用一个指针的空间的。printf(“s[]=%6.9s\n”,s)的意思原创 2018-10-06 20:25:43 · 130 阅读 · 0 评论 -
不知道的for循环的执行顺序
for(表达式1;表达式2;表达式3){ 表达式4;}正常的for循环执行顺序1.初始化循环表达式1(也叫初始化语句)→ 表达式2 → 符合就表达式42.循环表达式3 → 表达式2 → 符合表达式4for(;表达式2;表达式3){ 表达式4;}没有初始化循环这时,直接直接先执行表达式3表达式3 → 表达式2 → 符合表达式4...原创 2018-09-30 16:28:44 · 1427 阅读 · 0 评论 -
这些都不会丢人了
一个空类A,sizeof(A)是多少?答案是1空类被实例化,编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。也就是说这个char是用来标识类的不同对象的typedef的使用解释typedef void (*pfun)(void):概念理解:typedef是对已有的类型进行别名定义,不产生新的类型;#define 只是在预处理的过程...原创 2018-10-22 12:08:58 · 185 阅读 · 0 评论 -
用递归写一个数列全排列并输出
题目:如题输入格式:第一行,数组长度第二行,数组输出,所有排列直接代码原创 2018-09-20 14:18:29 · 1082 阅读 · 0 评论 -
C++ primer 笔记
现在的c++程序员最好使用nullptr,同时尽量避免使用NULL(使用指针时)C++规定,int至少和short一样大,long至少和int一样大,long long至少和long一样大,long long是C++11中的可寻址的最小内存块称为“字节(byte)”,存储的基本单元称为“字(word)”,一般是4字节或者8字节...原创 2018-09-20 13:33:03 · 117 阅读 · 0 评论 -
动态规划的一道题(室友约稿)
题目:输入一个无序的数组(值都大于等于0),给定一个值sum,从数组中取出任意个数的值,使得这些值的和为sum。输出有多少个这样的组合?输入格式:第一行,为数组长度和sum第二行,为数组这题为动态规划的一道题,先补充一下关于动态规划的基本概念动态规划动态规划是一种自底而上的一种方法,根据易知一些子问题,去解决父问题。两要素:(个人理解)1.初始状态;2.状态转移方程;他人理解...原创 2018-09-19 16:24:04 · 217 阅读 · 2 评论 -
腾讯真题简析
//有如下C++代码:struct A{//1 void foo(){printf(&quot;foo&quot;);}//2 virtual void bar(){printf(&quot;bar&quot;);}//3 A(){bar();}//4};struct B:A{//5 void foo(){printf(&quot;b_foo&quot;);}//6 void bar()原创 2018-08-30 12:57:28 · 200 阅读 · 0 评论 -
深拷贝和浅拷贝
什么时候会调用拷贝函数当对象之间赋值操作时class A{ //无自定义拷贝函数private: int x;public: A(int y){ x=y; }}A a(100);A b=a;什么是浅拷贝浅拷贝又称位拷贝,如果未自定义拷贝,系统会默认创建一个拷贝函数,为浅拷贝。 浅拷贝:如果对象a有...原创 2018-08-30 13:32:55 · 68 阅读 · 0 评论 -
c++多态自我总结
没有多态的时候class father{public: int a; void fun1(){ cout<<"father"; }};class son:public father{public: int b; void fun1(){ cout<<"son"; }};int...原创 2018-09-11 16:29:36 · 166 阅读 · 0 评论 -
智能指针
为什么要有智能指针std::string * ps = new std::string(str); ...if (weird_thing()) throw exception();str = *ps; delete ps;如果出错指针ps未被释放,内存泄漏 希望指针可以自动释放,已知对象的析构函数会自动调用,删除指针。但是ps为普通指针,没有析构函数。 所以,...原创 2018-09-11 19:00:32 · 188 阅读 · 0 评论 -
union和enum的大小问题
union的内存对齐问题union内存是共享的,按最大的数据类型来算。 但是,有些情况需要小心内存对齐,例如:union A{ int x; char y[5];};int main(){ cout<<sizeof(A); //输出8}个人理解:union的最终内存得是int和char的公倍数,且大于等于最大的数据类型的size...原创 2018-09-12 17:54:39 · 250 阅读 · 0 评论 -
重载、重写、重定义的区别
重载overload1.什么是重载一个类中,函数名相同,函数的形参的类型或者数目不一样2.原理C++,底层函数的命名会将形参类型加上,所以底层不会把仅函数名相同的函数认为是同一个。所以C语言和C++混编要加“extend”重写override重写也叫覆盖子类重新定义父类中有相同名称和参数的虚函数。重写需要注意:1 被重写的函数不能是static的。必须是virtual的2 重...原创 2018-09-18 13:45:22 · 358 阅读 · 0 评论 -
c++类中的隐式转换
隐式转换class foo(){public: foo(int a){ cout<<a<<endl; }};void fun(foo X){ cout<<"ok"<<endl;}int main(){ fun(24); //这样不会出错,会将int型隐式转换为foo型}...原创 2018-09-14 13:27:35 · 216 阅读 · 0 评论 -
多线程互斥锁
例子from:https://www.cnblogs.com/ssss429170331/p/5514697.html#include<Windows.h>#include<iostream>using namespace std;//互斥锁HANDLE hMutex1;int flag;DWORD WINAPI MyThread2(LPVOID lp...转载 2018-09-14 13:43:37 · 179 阅读 · 0 评论 -
三维越狱问题bfs
https://blog.csdn.net/loy_184548/article/details/51035332?utm_source=blogxgwz5//// B.cpp// 搜索//// Created by pro on 16/4/1.// Copyright (c) 2016年 pro. All rights reserved.//#include <c...转载 2018-10-31 20:50:54 · 169 阅读 · 0 评论