随笔分类 - C/C++
1
C/C++使用基础知识
摘要:[TOC] 问题 我们在日常编写C++程序时,常常会用到我们的STL标准库来帮助我们解决问题,这当中我们用得最多估计就是它里面的vector、list容器了,它们带来的便利不用多说(毕竟OJ、刷题什么的,基本全是它们的身影),而在日常学习中我们对STL中另一大组件 —空间配置器 了解可能就相对较少了
阅读全文
摘要:以前对extern、static的一些东西一直模棱两可。今天好好来梳理了一番。。 static关键字 被static修饰的变量或函数称之为静态成员、函数。 存储位置: static修饰的变量存放在静态区(全局区)。通常 有以下特点: 修饰的变量只能在本源文件中访问 存放在此的变量在程序结束后由os自
阅读全文
摘要:C++中有关 const & 内敛 & 友元&静态成员 的用法比较杂乱,算是C++中一个麻烦的部分。现速速的对它们做大致的总结,了解它们当中常见的用法和陷阱。 const修饰的成员函数&对象 在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个const成员函数的对
阅读全文
摘要:c语言关于宏的使用十分频繁。但是宏的使用有利也有弊,与此同时,它还是一个特别容易搞错的地方。正是基于此,它常常成为一些面试会侧重考察的地方。 所谓宏就是 #define 机制包括的一个规定,即允许把参数替换到文本中。它的声明方式:#define name(参数列表) stuff 其中参数列表是一个由
阅读全文
摘要:学习STL,必然会用到它里面的适配器和一些常用的算法。它们都是STL中的重要组成部分。 适配器 在STL里可以用一些容器适配得到适配器。例如其中的stack和queue就是由双端队列deque容器适配而来。其实适配器也是一种设计模式,该种模式是将一个类的接口转换成用户希望的另外一个接口。简单的说:就
阅读全文
摘要:map /multimap map是STL里重要容器之一。 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key, value>的键值对,map中不允许有键值相同的元素, 因此map中元素的键值key不能修改,但是可以通过
阅读全文
摘要:我们学习C++的时候,想必都会听说一个叫智能指针的东西,在初听这个词的时候,我们都难免不被“智能”两个字所吸引,感觉它会比较高级,让人有种忍不住想用一把的冲动。 但事实上,它可能并没有我们所想的那样“智能”、好用,它本质上其实就是一个对象,它去接管了原指针所管理的资源。但这里单单用一个对象就想有“智
阅读全文
摘要:我们学习使用C++,肯定都要了解模板这个概念。就我自己的理解,模板其实就是为复用而生,模板就是实现代码复用机制的一种工具,它可以实现类型参数化,即把类型定义为参数;进而实现了真正的代码可重用性。模版可以分为两类:一个是函数模版,另外一个是类模版。 举个最简单的例子,当在编写好了一个进行int型交换的
阅读全文
摘要:学习C++ 不可避免地会遇到虚函数的问题,下面几个问题在学习初期或多或少会存在一些疑惑,所以便将其总结了下来。 1.为什么静态成员函数、构造函数不能定义为虚函数? 因为静态成员函数是一个大家共享的一个资源,它其实就是一个“受类域限定符限制”的普通函数,没有this指针,不需要对象就可以调用;而虚函数
阅读全文
摘要:前一段时间被问到过一个问题,当时模模糊糊,就是说不清楚,问题问到说:什么情况下会将基类的析构函数定义成虚函数? 当时想到 如果子类B继承了父类A,那么定义出一个子类对象b,析构时,调用完子类析构函数,不是自动调用父类的析构函数吗!干嘛还要把定义为虚函数。将基类析构函用到了数定义成虚函数,难道是也是为
阅读全文
摘要:在区分隐藏和重写之前,先来理一理关于继承的东西。。。 【继承】 继承是面向对象复用的重要手段,是类型之间的关系建模。通过继承一个类,共享公有的东西,实现各自本质不同的东西。简单的说,继承就是指一个对象直接使用另一对象的属性和方法。C++中的继承关系就好比现实生活中的父子关系,继承一套房子通常比白手起
阅读全文
摘要:在C语言中,我们写程序时,总是会有动态开辟内存的需求,每到这个时候我们就会想到用malloc/free 去从堆里面动态申请出来一段内存给我们用。但对这一块申请出来的内存,往往还需要我们对它进行稍许的“加工”后即初始化 才能为我们所用,虽然C语言为我们提供了calloc来开辟一段初始化好(0)的一段内
阅读全文
摘要:近来回转 C++的学习,脑子又被搞得了一团迷(简直不要忘得太快..... ) 过后静下来想一想,还是因为有些东西没搞清楚导致,所以理了理两个容易搞迷糊的地方。 引用与指针 C++进行传值更倾向于使用引用。引用实质就是给已经定义的变量起一个别名,函数通过这个别名来完成对应的功能。 【引用特点】 ①一变
阅读全文
摘要:谈到自定义类型,首先想到的是struct 即我们常用的结构体。首先说一说什么是结构。。。 结构:它是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 一、结构体声明是怎样的呢? 假如要定义一个结构体A 有两种: 1.struct A { 2.struct { char c; ch
阅读全文
摘要:入栈规则 可变参数函数的实现与函数调用的栈帧结构是密切相关的。所以在我们实现可变参数之前,先得搞清楚 栈是怎样传参的。 正常情况下,C的函数参数入栈遵照__stdcall规则, 它是从右到左的,即函数中的参数入栈是从右到左的。 例如: 从各个形参变量的地址可以看出它们地址大小确实是从右到左依次减小的
阅读全文
摘要:memcpy 它是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 函数原型:void* memcpy(void * dest, const void * src,size_t count) 如上,发现
阅读全文
摘要:【写在前面】 首先,先说明一个关系:数组和指针是没关系的! 数组名和指针的概念区别: 数组名和指针虽都代表数组首元素的地址,但意义不同。 网上有个举得比较好的例子,就是把它们分别比作省政府和市政府,数组名相当于省政府,指向首元素的指针代表市政府。如陕西的省政府在西安,而西安市的市政府也在西安,两个政
阅读全文
摘要:1 #include 2 #include 3 #include 4 #define row 3 5 #define list 3 6 7 void init_Board(char board[row][list]) //对二维数组元素全部赋值为 “ ” 8 { 9 memset(board,' ',row*list*sizeof(c...
阅读全文
摘要:题目 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 初次见到这种题,感觉很难将其抽象出来 用编程来解
阅读全文
1

浙公网安备 33010602011771号