![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++/C
文章平均质量分 57
wunghao8
王浩,吉林大学,硕士研究生,图像处理、机器视觉。
展开
-
new delete 是运算符,malloc,free是函数(区别)
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于转载 2014-05-09 21:04:46 · 615 阅读 · 0 评论 -
C++中的static关键字
转自:http://blog.csdn.net/hackbuteer1/article/details/7487694C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量转载 2015-05-22 22:35:51 · 581 阅读 · 0 评论 -
class和struct的区别以及struct和union的区别
class 和 struct 区别1.成员变量结构在默认情况下的成员是公共(public)的,而类在默认情况下的成员是私有(private)的。 2.存储truct保证成员按照声明顺序在内存中存储。class不保证等等 3.继承struct A { }; class B : A{ }; //private继承 struct转载 2015-03-30 21:12:05 · 819 阅读 · 1 评论 -
解释虚函数的例子(父类子类指针函数调用注意事项)
转自http://blog.chinaunix.net/uid-20665441-id-305464.html父类子类指针函数调用注意事项1,如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数(静态联翩)2,如果以一个衍生类指针指向一个基础类对象,必须先做强制转型动作(explicit cast),这种做法很危险,也不符合生转载 2015-05-12 22:28:55 · 2267 阅读 · 1 评论 -
char str[] 和 char *str 的区别
[cpp] view plaincopychar* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的空间的地转载 2015-05-11 11:56:16 · 420 阅读 · 0 评论 -
动态连接库和静态连接库有什么区别?
静态库在程序运行时就会装入内存,而动态库在调用的时候才装入!首先纠正所谓“静态连接就是把需要的库函数放进你的exe之中”的说法。在真实世界中,有三个概念:Use static libary, static linked DLL, dynamic linked DLL.多数人混淆了static libary 和 static linked DLL的概念,当然他们有似是而非的“相似之处”,比如转载 2015-04-08 10:50:46 · 498 阅读 · 0 评论 -
hash_map详细讲解
hash_map和map有相当大的相似之处,主要是用法上的,实现原理上还是有很大不同的,关于map的使用方法举例在http://blog.csdn.net/wunghao8/article/details/40893139中已经介绍,下面介绍一下hash_map。为什么要用hash_map,因为hash_map更适用于一些海量数据的问题,面试的时候经常会被问到海量数据相关的处理方法,因此在原创 2015-04-02 15:18:53 · 580 阅读 · 0 评论 -
C++类内各种变量的初始化
我们接下来讨论的类内成员变量包括下面几种:1,普通变量,如 int i;2,引用变量,如int& i;3,常量变量,如const int i;4,静态变量,如static int i;5,静态常量整型变量,如static const int i;6,静态常量非整型变量,如static const float i;以上变量的初始化规则是:第1种情况必须在构造函数参数列原创 2015-03-27 11:12:54 · 1231 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2015-03-27 16:29:04 · 556 阅读 · 0 评论 -
STL Vector remove()和erase()的使用
转自:http://blog.csdn.net/ozwarld/article/details/7761519STL中remove()只是将待删除元素之后的元素移动到vector的前端,而不是删除。若要真正移除,需要搭配使用erase()。例子如下:[cpp] view plaincopy// remove.cpp //转载 2015-03-27 11:09:18 · 554 阅读 · 0 评论 -
C++中map容器的使用
在C++中map容器是一个键值对容器,也原创 2014-11-07 15:06:38 · 1870 阅读 · 0 评论 -
二维数组的传参问题
#include "iostream"using namespace std;void printout(int **p,int m,int n){ for(int i=0;i<m;++i) { for(int j=0;j<n;++j) { //p是指向int**的,加上i相当于加了i行,然后*(p+i)是int*的,加上j就是当前要访问数的地址 cout<<*(*(原创 2014-11-20 11:18:27 · 444 阅读 · 0 评论 -
线程同步互斥锁和读写锁的区别和各自适用场景
读写锁特点:1)多个读者可以同时进行读2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行)3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者) 互斥锁特点: 一次只能一个线程拥有互斥锁,其他线程只有等待 自旋锁:一次只能有一个进程进入临界区,读写锁是自旋锁的一个特例。 应用场景:以转载 2014-11-16 17:48:14 · 6289 阅读 · 1 评论 -
C++内存对齐
考虑下面两个例子:1,struct{ char a;}原创 2014-11-14 17:53:33 · 594 阅读 · 1 评论 -
static在C/C++中的作用
http://baike.baidu.com/view/536145.htm?fr=aladdin原创 2014-11-13 11:44:45 · 493 阅读 · 0 评论 -
字符型指针初始化
今天根据网上的一个笔试题及原创 2014-11-12 16:08:04 · 1993 阅读 · 0 评论 -
顶层const和底层const的理解
一般当说到顶层或底层const的时候都是原创 2014-09-18 10:11:13 · 7482 阅读 · 8 评论 -
C/C++中extern、static等关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2014-05-26 17:11:10 · 561 阅读 · 2 评论 -
字符串的全排列和组合算法
转自:http://blog.csdn.net/hackbuteer1/article/details/7462447全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首转载 2015-06-05 16:05:21 · 596 阅读 · 0 评论