
C++学习
文章平均质量分 69
qq_26460507
主要研究方向为图像处理和无线通信。
展开
-
C++学习之const成员函数(函数声明后加const,或称常量成员函数)用法详解
在C++的类定义里面,可以看到类似下面的定义:01class List {02private:03 Node * p_head;04 int length;转载 2017-03-08 00:51:15 · 360 阅读 · 0 评论 -
程序员面试宝典部分第四版针对字符数组处理的部分程序
#include #include #include #include #include #include #include using namespace std;/***********************************程序员面试宝典上的关于字符串处理的例程*page241-243************************************/原创 2017-08-30 22:54:36 · 253 阅读 · 0 评论 -
字符串处理的一些应用
1、牛牛喜欢彩色的东西,尤其是彩色的瓷砖。牛牛的房间内铺有L块正方形瓷砖。每块砖的颜色有四种可能:红、绿、蓝、黄。给定一个字符串S, 如果S的第i个字符是'R', 'G', 'B'或'Y',那么第i块瓷砖的颜色就分别是红、绿、蓝或者黄。牛牛决定换掉一些瓷砖的颜色,使得相邻两块瓷砖的颜色均不相同。请帮牛牛计算他最少需要换掉的瓷砖数量#include #include using name原创 2017-08-30 21:50:28 · 370 阅读 · 0 评论 -
直接插入排序C语言实现
直接插入排序即是在要排序的数组中,假设前n-1(n>=2)个数已经是排好序的,现在要把第n个数插入到前n个已经排好序的数组中,使得这n个数也变成有序的,如此反复循环,使得要排序的数组中的最后一个元素也排好序, 我们可以先假设第一个数是排好序的,然后第二个数和第一个数进行比较,如果第二个数比第一个数大,那么说明前两个数排好序,无需做调整,如果第二个数比第一个数小,那么就把第转载 2017-09-08 12:14:03 · 351 阅读 · 0 评论 -
牛客网错题集锦3
1、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?(SpinLock)1)SpinLock 2)Mutex 3)Semaphore 4)Condition variable 解析:spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽原创 2017-08-29 14:46:48 · 1234 阅读 · 0 评论 -
string类的构造以及static和const的详细作用
static关键字至少有下列n个作用1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;原创 2017-09-15 18:49:59 · 1146 阅读 · 0 评论 -
牛客网练习题错题集锦2
1、若一台计算机的内存为128MB,则交换分区的大小通常是(256M)解析:在内存小于2G的情况下,交换分区应为内存的2倍,超过2G的话,交换分区为物理内存加上2G2、Linux crontab中* * * * * /usr/local/run.sh这句话5个*号分别代表什么?解析:crontab基本格式 : * * * * * command 分 时 日原创 2017-08-28 15:48:06 · 763 阅读 · 0 评论 -
最近见到的一些2017年的名企校招题
#include #include #include #include #include #include #include using namespace std;#if 0long fibonacci1(int n){ if(n<=2) return 1; else { long num1=1; lon原创 2017-09-05 22:24:26 · 289 阅读 · 0 评论 -
牛客练习错题总结
1、linux 创建文件的命令有()touch,cat,vi/vim,>touch命令 创建空白文件或修改文件时间cat主要有三大功能:1.一次显示整个文件。2.从键盘创建一个文件。 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件vi/vim可用来创建文件编辑文件并保存> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其原创 2017-08-26 11:29:15 · 706 阅读 · 0 评论 -
经典的字符串模式匹配算法KMP算法
/* P为模式串,下标从0开始 */void GetNext(string P, int next[]) ///优化前next计算结果{ int p_len = P.size(); int i = 0; //P的下标 int j = -1; next[0] = -1; while (i < p_len) { if (j =转载 2017-08-27 16:35:27 · 275 阅读 · 0 评论 -
C++中sizeof和结构体以及内存对其
内存对齐 在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。 我们还是先来看一段简单的程序: 程序一 1 #include iostream> 2 using namespace std;原创 2017-08-27 15:11:08 · 496 阅读 · 0 评论 -
高质量C/C++编程
目 录前 言... 6第1章 文件结构... 111.1 版权和版本的声明... 111.2 头文件的结构... 121.3 定义文件的结构... 131.4 头文件的作用... 131.5 目录结构... 14第2章 程序的版式... 152.1 空行... 152.2 代码行... 162.3 代码行内的空转载 2017-08-13 20:32:17 · 741 阅读 · 0 评论 -
海康威视2015年研发笔试题
一、引用和指针的区别?指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;原创 2017-08-17 12:59:01 · 2533 阅读 · 1 评论 -
qt中限制QLineEdit的输入范围
1、输入整数部分lineEdit->setValidator(new QIntValidator(1, 1000, this)); //但是仍然能输入00000002、简单的小数输入lineEdit->setValidator(new QDoubleValidator(-180.0,180.0,6,this));3、使用正则表达式输入1)输入(0,1) 两位原创 2017-06-07 15:08:32 · 16319 阅读 · 1 评论 -
C++学习之vector重复元素的去除和求vector中最大最小元素及其索引
1.使用unique函数// UniqueVector.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include using namespace std;int main(){ vectorint> v;转载 2017-03-21 17:06:00 · 1482 阅读 · 0 评论 -
C++学习之计算均值和方差
Vector 计算 均值(mean) 和 方差(variance)vector的数组, 计算均值和方差的最简方法.代码:[cpp] view plain copy print?double sum = std::accumulate(std::begin(resultSet), std::end(resultS转载 2017-03-13 20:53:09 · 18547 阅读 · 4 评论 -
凌云光科技笔试题
1、死锁产生的原因及解决方案产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。原创 2017-10-10 17:30:17 · 2742 阅读 · 0 评论