c/c++
江上渔者21号
这个作者很懒,什么都没留下…
展开
-
智能指针的实现
[cpp] view plain copy print?#pragma once #include<iostream> using namespace std; //在一个类中实现智能指针 template<class T> class SmartPtr1{ public: SmartPtr1(T *ptr) :_count...转载 2017-05-21 16:07:54 · 195 阅读 · 0 评论 -
priority_queue的堆
priority_queue本质是一个堆。1. 头文件是#include<queue>2. 关于priority_queue中元素的比较 模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。 Cont...转载 2019-03-21 08:46:58 · 246 阅读 · 0 评论 -
atoi的实现
class Solution {public: int atoi(const char *str) { if(str==NULL){ //1 return 0; } int i=0; long long res=0; while(isspace(str[i])){//2 ...转载 2019-01-18 08:39:40 · 161 阅读 · 0 评论 -
为什么不能根据返回类型区分重载?
重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重...转载 2018-07-30 11:08:30 · 247 阅读 · 0 评论 -
const函数,const变量
Const,Const函数,Const变量,函数后面的Const (zz)关键字:Const,Const函数,Const变量,函数后面的Const 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。原创 2017-05-21 19:05:12 · 270 阅读 · 0 评论 -
INT_MAX和INT_MIN
INT_MIN在标准头文件limits.h中定义。#define INT_MAX 2147483647#define INT_MIN (-INT_MAX - 1)1212在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。表达式的意思是对整数21473648取负,但是2147483648已经溢出了int的上限,所以定义为(-INT_MAX ...转载 2018-05-11 23:37:50 · 44188 阅读 · 5 评论 -
gcc 与 g++ 区别
一:gcc与g++比较编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上个extern "C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的...原创 2018-05-20 17:39:20 · 957 阅读 · 0 评论 -
continue不会跳过do while的条件判断
continue不会跳过do while的条件判断先贴一段代码:int i = 0;do{ printf("%d\n", i); if(i < 10) continue;}while(++i < 10);1234567以前我一直以为,continue就是跳转到do开始的位置,所以就认为上面这段程序将会是一个死循环。其实却不然,continue会跳到...原创 2018-06-11 12:41:14 · 2909 阅读 · 0 评论 -
c++ ifstream读取文件操作之peek、>>和get
预备知识:fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream -- 打开文件供读写 文件打开模式: ios::in 读ios::out 写ios::app 从文件末尾开始写ios::binary 二进制模式ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。...转载 2018-07-02 16:15:12 · 10329 阅读 · 0 评论 -
没有躲过的坑--new一个指针数组、以及创建动态二维数组
实际工作中,有一个类A,现在需要使用多个A对象的指针,这是时候,首先想到的就是指针数组。————————————————————————————————————————————指针数组与数组指针首先,指针数组和数组指针有何区别是老生常谈的东西:看中文不方便,看看英文描述:指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a p...转载 2018-07-02 16:54:46 · 4686 阅读 · 0 评论 -
Makefile 的编写例子demo
阅读数:3894假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include "mytool1.h" #include "mytool2.h" int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } /* mytool1.h */ ...转载 2018-07-13 22:33:20 · 3335 阅读 · 0 评论 -
Makefile 中的命令
$(filter PATTERN…,TEXT) 函数名称:过滤函数—filter。 函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字符“%”。存在多个模式时,模式表达式之间使用空格分割。 返回值:空格分割的“TEXT”字串中所有符合模式“PATTERN”的字串。 函数说明:“filter”函数可以用来去除...转载 2018-07-13 23:18:28 · 1552 阅读 · 0 评论 -
make命令和makefile文件
(1) makefile的语法(2) make命令的选项和参数1、依赖关系2、规则3、makefile文件中的注释4、makefile文件中的宏5、多个目标6、内置规则 make工具解决的问题:它会在必要时重新编译所有受改动影响的源文件。 注意:make命令不仅仅用于编译程序,无论何时,当需要通过多个输入文件来生成输出文件时,你都可以利用它来完成任务。它的其他用法还包括文档处理。虽然make命...转载 2018-07-13 23:20:45 · 1282 阅读 · 0 评论 -
C++友元friend --c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作
通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为public(共用的),然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它,c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作,避免把类成员全部设置成public,最大限度的保护数据成员的安全。 友元能够使得普通函数直接访问类的保护数据,避免了类成员函数的频繁调...转载 2018-07-15 12:01:29 · 289 阅读 · 0 评论 -
linux内存映射mmap原理分析
个人分类:linux内核设计与实现内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间<---->用户空间两者之间需要大量数据传输等操作的话效率是非常高的。以下是一个把普遍文件映射到用户空间的内存区域的示意图。图一:二、基本函数...转载 2019-03-26 21:43:20 · 134 阅读 · 0 评论