五山口老法师

仰望星空,脚踏实地!

12.C++:strtol() 字符串转长整型函数

字符串转长整型函数 long int strtol(const char *nptr,char **endptr,int base); 这个是函数原型,nptr就是我们的字符串,endptr是结束符(NULL就是\0),base是进制数,默认的0(10进制) #include &...

2018-09-27 21:23:36

阅读数 384

评论数 0

Linux:信号

什么是信号,那么为什么有信号,信号是谁发送给谁的呢,怎么发送? 答案很简单,想想我们在日常生活中也有很多信号,比如常见的红绿灯信号。所以linux中的信号也是类似的。它无非是想提供一个机制在需要的时候告诉某个进程该怎样做。是一种规定,便于系统操作。就像我们都知道”红灯停,绿灯行“一样。 信号的...

2018-09-27 21:19:20

阅读数 23

评论数 0

Linux:nice函数

什么是nice函数? 在我们的系统中,进程调度依赖于进程的优先级。如何获取或者设置优先级的值?这就是nice干的事情! 顾名思义,nice嘛!就是你这个人(进程)越好说话越和善,你就多让着别人,处处让着别人,因此优先级就越低! 因此:nice值越大,优先级就越低! 怎么获取?怎么设置? ...

2018-09-27 20:12:50

阅读数 167

评论数 0

华为:给定一段英文,长度在100000个字符以内。要求统计出这段文章中,出现最多的英文字母。

华为2018秋招笔试题: 给定一段英文,长度在100000个字符以内。要求统计出这段文章中,出现最多的英文字母(不理会除英文字母之外的字符,大小写算作同一个字母),以及其出现的次数。本段文章不包含回车换行。如果两个或多个字母出现的次数一样多,那么仅输出排在最前面的一个字母和出现的次数。 1)大...

2018-09-26 21:32:13

阅读数 242

评论数 0

map:根据 value 找 key ?

在之前的学习中,我们在使用map的时候,都是利用key找value。 之前我们使用的函数是find,若存在,返回查找到的指向第一个key的迭代器,若不存在,返回尾后迭代器。 反过头来想一想,我们可不可以根据value找key呢? 答案是肯定的。 我们使用find_if +lambda可以实...

2018-09-26 21:21:17

阅读数 144

评论数 0

深信服:输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词

深信服2018秋招笔试题: 输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词 输入一个字符串,长度小于1000,输入的字符仅包含(0-9,a-z,A-Z, . , : ! )及空格。 输出按单词的字母进行排序,每行为 : ...

2018-09-22 09:47:56

阅读数 996

评论数 0

11.C++: cin、cin.get()、cin.getline()、getline()、gets()

在学习C++的过程中,经常会遇到输入输出的问题,以下总结一下下面几个函数的用法:1)、cin 2)、cin.get() 3)、cin.getline() 4)、getline() 5)、gets() 1、cin>>   用法1:最基本,也是最常用的用法...

2018-09-22 09:32:56

阅读数 55

评论数 0

10.ASCII码对照

2018-09-22 09:05:01

阅读数 46

评论数 0

string:删除string中指定位置的字符?指定的所有字符?

使用迭代器删除string中指定位置的字符! string str = "huehfudhfruhgfsfgkhdyfsghydff"; string::iterator itr = str.begin(); itr += 2; str.erase(...

2018-09-22 09:02:01

阅读数 5879

评论数 0

map:erase删除元素之后迭代器失效的问题!(iterator not incrementable)

比如我们现在有如下代码: map<string,int>tmp; for(auto i = tmp.begin();i!=tmp.end();++i) { for(int j = 0;j<tmp->...

2018-09-22 08:43:54

阅读数 110

评论数 0

剑指offer:约瑟夫环的问题

什么是约瑟夫环问题? 约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。 例如只有三个人,把他们叫做A、B、C,他们围成一圈,从A开始报数,假设报2的人被杀掉。 首先A开始报数,他报1。侥幸逃过一劫。...

2018-09-21 14:38:51

阅读数 69

评论数 0

14.线程安全?线程不安全?可重入函数?不可重入函数?

线程安全问题 基本定义 线程安全:简单来说线程安全就是多个线程并发执行同一段代码时,不会出现不同的结果,我们就可以说该线程是安全的; 线程不安全:如果多线程并发执行时会产生不同的结果,则该线程就是不安全的。 线程安全产生的原因:大多是因为对全局变量和静态变量的操作。 常见的线程不安全的函...

2018-09-20 23:33:29

阅读数 34

评论数 0

13.常用Linux命令

1.cat:连接文件,并将文件打印到标准输出设备上。

2018-09-20 16:43:54

阅读数 31

评论数 0

12.Linux:exec函数族

(1)exec函数说明 fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名在磁盘上找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之...

2018-09-20 16:32:54

阅读数 37

评论数 0

9.C++弱引用智能指针weak_ptr的用处

weak_ptr也是一个引用计数型智能指针,但是它不增加对象的引用计数,即弱引用。与之相对,shared_ptr是强引用,只要有一个指向对象的shared_ptr存在,该对象就不会析构,直到指向对象的最后一个shared_ptr析构或reset()时才会被销毁。 利用weak_ptr,我们可以解...

2018-09-20 15:16:36

阅读数 52

评论数 0

8.公有继承 && 保护继承 && 私有继承

一个子类继承父类时,可按照public、private和protected方式继承父类,每种继承方式的区别如下: 1) public继承方式 基类中所有public成员在派生类中为public属性; 基类中所有protected成员在派生类中为protected属性; 基类中所有priva...

2018-09-20 14:22:03

阅读数 43

评论数 0

7.类的访问控制和继承

在C++中,我们使用访问说明符加强类的封装性。 访问说明符有:public、private、protected 1)定义在public说明符之后的成员在整个程序内可以被访问,public成员定义类的接口。 2)定义在private说明符之后的成员可以只能由类的接口访问,private部分封装...

2018-09-20 12:00:09

阅读数 74

评论数 0

剑指offer:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,..,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。 不能使用除法(元素可能为0,除以0操作未定义) 思路: B[i]的值可以看作下图的矩阵中每行的乘积。 ...

2018-09-20 09:57:07

阅读数 307

评论数 0

11.C程序内存空间分配

BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静...

2018-09-19 09:19:04

阅读数 88

评论数 0

剑指offer:数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 看到这一题,有两个思路! ...

2018-09-19 09:09:27

阅读数 47

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭