编程语言问题
coolwriter
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组和指针的问题;char**cp[]
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { char *c[]={"ENTER","NEW","POINT","FIRST"}; char **cp[]={c+3,c+2,c+1,c}; char ***cpp=cp;原创 2017-12-12 17:13:09 · 846 阅读 · 0 评论 -
LRU(Least recently used,最近最少使用)算法
常见的缓存算法 LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。 LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。 FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰...原创 2018-07-24 09:46:05 · 2900 阅读 · 0 评论 -
迭代器和指针
迭代器与指针的差别:迭代器: (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ –等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他...原创 2018-07-24 09:20:50 · 1440 阅读 · 0 评论 -
洗牌算法
换位置法基本思路是:先初始化一串分布的数字,然后为每个位置依次生成一个与之交换的随机位置,如果生成的随机位置不是它本身就执行交换操作。实现代码:void swap(int& a, int& b) { a = a^b; b = a^b; a = a^b; } size_t shuffle2(int s[], int n) { ...原创 2018-07-23 17:24:22 · 741 阅读 · 0 评论 -
数字转字符串,字符串转数字
std::to_string C++ Strings library std::basic_string Defined in header (1) std::string to_string( int value );(2) std::string to_string( long value );(3) std::string to_string( long long v...原创 2018-04-25 11:26:14 · 1574 阅读 · 0 评论 -
C++面试
1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 全局变量,static变量。 (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3)用malloc或转载 2018-01-30 10:23:03 · 1057 阅读 · 1 评论 -
KMP算法
KMP算法是一种改进后的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。通过一个辅助函数实现跳过扫描不必要的目标串字符,以达到优化效果。一般匹配字符串时,我们从目标字符串str(假设长度为n)的第一个下标选取和ptr长度(长度为m)一样的子字符串进行比较,如果一样,就返回开始处的下标值,不一原创 2018-01-16 11:49:15 · 365 阅读 · 0 评论 -
函数重载,覆盖和隐藏
a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如原创 2017-12-07 19:32:17 · 246 阅读 · 0 评论 -
基类与派生
(1) 对基类成员和子对象成员的初始化必须在成员初始化列表中进行,新增成员的初始化既可以在成员初始化列表中进行,也可以在构造函数体中进行。 (2) 派生类构造函数必须对这三类成员进行初始化,其执行顺序如下所述。 . 调用基类构造函数; . 调用子对象的构造函数; . 派生类的构造函数体; (3) 当派生类有多个基类时,处于同一层次的各个基类原创 2017-12-15 11:17:55 · 454 阅读 · 0 评论 -
struct,class的sizeof大小问题
在32位机器上,下列代码中class A { int i; union U { char buff[13]; int i; }u; void foo() { } typedef char* (*f)(void*); enum{red, green,原创 2017-12-15 11:10:05 · 897 阅读 · 0 评论 -
剑指offer 编程题(5):两个栈实现队列,两个队列实现栈
问题1:用两个栈实现一个队列,实现队列的push和delete操作 栈的特性是先进后出(FILO),队列的特性是先进先出(FIFO),在实现delete时,我们的难点是如何将栈中最底层的数据拿出来,我们有两个栈,所以我们可以将一个栈中的数据依次拿出来压入到另一个为空的栈,另一个栈中数据的顺序恰好是先压入栈1的元素此时在栈2的上面,为了实现效率的提升,我们在delete时,判断栈2是否有数据,如原创 2017-12-14 16:10:45 · 315 阅读 · 0 评论 -
虚函数不能定义为内联函数
在C++中,inline关键字和virtual关键字分别用来定义c++中的内联函数和虚函数,他们在各自的场合都有其各自的应用,下面将简单介绍他们各自的功能,然后在说明为什么一个函数不能同时是虚函数和内联函数(inline)内联函数(inline)内联函数的目的是为了减少函数调用时间。它是把内联函数的函数体在编译器预处理的时候替换到函数调用处,这样代码运行到这里时候就不需要花时间原创 2017-12-05 20:59:47 · 1672 阅读 · 1 评论 -
const常量
const 限定一个对象为只读属性。 先从一级指针说起吧: (1)const char p 限定变量p为只读。这样如p=2这样的赋值操作就是错误的。 (2)const char *p p为一个指向char类型的指针,const只限定p指向的对象为只读。这样,p=&a或 p++等操作都是合法的,但如*p=4这样的操作就错了,因为企图改写这个已经被限定为只读属性的对象。 (转载 2017-12-05 21:08:19 · 332 阅读 · 0 评论 -
波浪号按位取反和叹号逻辑非取反
按位取反“~”:按位取反1变0,0变1逻辑非“!”:逻辑取反, false变true,true变false,在C中,只要不是0就是真------------------------------------------------------------------------------------------------------------------------------原创 2017-12-05 17:31:06 · 4119 阅读 · 1 评论 -
出栈顺序问题
规律是:答案中出栈的第一个元素是在原来的次序中是第几个,那么他的前面的元素必然都还在栈中。如EDCBA是可能的,因为E在第一个,E是原序列中的最后一个,那ABCD必在栈中只能按栈规则出,即DCBA。如DCEAB的顺序是不可能的,因为如果D是首个,那么ABC必在栈中,无论E在什么时候入栈和出栈,D之后的出栈顺序必有CBA的大致顺序,可见不会出现这种顺序。...原创 2018-08-12 00:01:00 · 873 阅读 · 0 评论
分享