C/C++
gx262091291
这个作者很懒,什么都没留下…
展开
-
apr相关
apr_status 作为apr函数返回值APR原创 2015-01-13 10:26:14 · 344 阅读 · 0 评论 -
LeetCode 206 单链表逆置
这是一道基本题 时隔一段时间后都值得练习一下Reverse a singly linked list.基本思路:设置三个指针,一个为遍历前驱(游标一) ,一个为遍历后驱(游标二),另一个作为保存节点,保存下一个逆置后指向的位置。代码如下: ListNode* ListReverse(ListNode* L){ if ((NULL == L) || (NUL原创 2016-03-23 14:54:50 · 514 阅读 · 0 评论 -
Leetcode 83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3.水题 注意边界和要判断下一个节点/*原创 2016-06-15 18:47:56 · 262 阅读 · 0 评论 -
232. Implement Queue using Stacks 还不理解法一
class Queue {public: stack que; stack temp; // Push element x to the back of queue. void push(int x) { while(!que.empty()) { temp.push(que.top());原创 2016-06-15 19:34:21 · 315 阅读 · 0 评论 -
292. Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the原创 2016-06-16 20:44:13 · 229 阅读 · 0 评论 -
141. Linked List Cycle 注意边界条件
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?Subscribe to see which companies asked this question/** * Definition fo原创 2016-06-16 21:10:45 · 269 阅读 · 0 评论 -
C++Primer Chapter3课后习题
练习3-2 编写程序实现从标准输入每次读入一行文本。然后改写程序,每次读入一个单词。#include #include using namespace std;void test3_2_1(){string line;//一次读入一行 直到文件结束while(getline(cin,line)){cout}}void test3_2_2(){原创 2016-06-06 11:41:49 · 476 阅读 · 0 评论 -
华为面试总结
1.进程间的通信管道通信、文件访问、共享内存2.其他应该加强沟通方面的软实力原创 2016-11-02 10:53:34 · 323 阅读 · 0 评论 -
百度面试总结2
1.C++动态绑定 函数地址角度解释2.http协议3.TCP/IP4.网络拥塞 阻塞5.数据库索引 b+树实现原理6.项目内容7.数学问题 盐A和盐B问题一罐A盐 一罐B盐 把一勺A盐放到B盐罐中,混合均匀,再取一勺混合后的盐放回A罐,然后A罐中B盐浓度与B罐中A盐浓度谁大?计算后发现一样大。8.链表判断有无环 引申到环内指针追及问题 取模9.百原创 2016-09-24 14:18:14 · 477 阅读 · 0 评论 -
MatlabR2014a+Visual studio 2013 混合编程 dll丢失和初始化失败(已解决)
1.详细的配置见这两篇文章http://jingyan.baidu.com/article/e75aca8562d06b142fdac66d.htmlhttp://blog.csdn.net/guoxinian/article/details/508585232.几个关键点(1).vs2013下提示缺少dll文件,找到对应缺失的文件,放到你指定的matlab的环境变量的目录原创 2017-01-24 15:58:23 · 2509 阅读 · 0 评论 -
VS2013配置GSL运算库
http://blog.csdn.net/aldenphy/article/details/27201169该文是2010的配置,2013同样适用。转载 2017-01-26 13:05:00 · 2088 阅读 · 0 评论 -
matlab与c语言编程之代码互相翻译,正确理解matlab的索引
将一个c代码算法翻译为matlab代码,需要注意的一点是正确使用matlab的索引提高效率,matlab中使用index修改矩阵的时候,例如,index数组 index = [3,1,4,2],记向量 vector = {a b c d}。 vector(index)的结果为{c,a,d,b},index(1)对应3,即为把第3个位置的数放到1上来。而通常,c语言编程的情况下,是index(1原创 2017-05-04 17:45:20 · 1620 阅读 · 0 评论 -
百度外卖笔试总结
其实都是百度的老题,下次好好准备3.百度2014校园招聘算法——给出一组数据A=[a_0, a_1, a-2, ... a_n](其中n可变),打印出该数值元素的所有组合。void StringTest(CString source, CStringArray& dest){if(source.IsEmpty()){}else{CString t原创 2016-09-11 11:05:29 · 1689 阅读 · 0 评论 -
复习指针数组以及如何把二维数组赋值给二维指针
#include #include using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};void listadd(){ int flag = 0; ListNode* pre = new ListNode(0); List原创 2017-07-31 00:10:53 · 6064 阅读 · 0 评论 -
C++引用解析
把引用对象压入栈stack a;int m = 1;int &b = m;a.push(b);b = 2;int t = a.top();cout 这个时候打印的是1;stack a;int m = 1;int *b = &m;a.push(b);*b = 2;int *t = a.top();cout 这个时候打印是原创 2017-08-05 23:31:53 · 234 阅读 · 0 评论 -
C++底层数据结构原理
C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问deque是一个双端队列(double-ended queue),也是在堆中保存内容的.它的保存形式如下:[原创 2017-08-06 00:01:15 · 893 阅读 · 0 评论 -
opencv 解决vs2013 opencv3.0 0xC000007b运行错误问题
在控制变量里同时加入X86和X64的配置即可所有依赖库都要引用。具体配置参考这篇论文:http://www.360doc.com/content/15/0521/22/25615270_472311507.shtml原创 2016-06-30 22:33:22 · 5965 阅读 · 0 评论 -
函数指针的正确理解 from C++ Primer Plus P242
为了实现函数指针,应当完成如下工作:(1).获取函数的地址(2).声明一个函数指针(3).使用函数指针来调用函数1.获取函数地址十分简单,只需要使用函数名,后面不跟参数即可。think()是一个函数。For example, process(think)2.声明函数指针通过函数声明理解函数指针, double pam(int);对应正确的指原创 2016-06-05 13:59:54 · 276 阅读 · 0 评论 -
How does memmove differ from memcpy
(1).memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。由src所指内存区域复制count个字节到dest所指内存区域。(2).memcpy与strcpy原型:extern void原创 2016-06-04 20:18:42 · 205 阅读 · 0 评论 -
C++实现内存池MemoryPool 包含单线程和多线程
内存池的需求是在系统提供的malloc函数和free函数无法满足性能要求的情况下,一个有效的解决方案。 我的设计思路如下: 用一个二维链表实现,第一个维度为block,用于区分不同的大小所对应的链区。第二个维度为chunk,一个block包含若干个chunk,一个chunk单位是我们的分配对象。通过指定大小来分配空间,通过chunk指针来设置回收。原创 2014-12-26 15:45:34 · 1822 阅读 · 0 评论 -
C++Primer Plus 基础复习
1.一个典型的整型溢出行为2.原创 2015-02-09 17:44:35 · 417 阅读 · 0 评论 -
Qt 学习使用qt
一些有用的链接:qt常用库介绍:http://blog.sina.com.cn/s/articlelist_2801495241_0_1.html原创 2015-04-30 11:27:57 · 511 阅读 · 0 评论 -
LeetCode 41 First Missing Positive
Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant原创 2015-12-10 21:26:17 · 415 阅读 · 1 评论 -
C/C++面试遇到的几个知识盲点以及编程问题
1.结构体的sizeof操作详见:http://blog.csdn.net/van150/article/details/544454里面总结了三个要点:字节对齐的细节和编译器实现相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编转载 2014-12-02 14:08:56 · 466 阅读 · 0 评论 -
阿里巴巴电话面试
阿里巴巴电话面试1.自我介绍2.算法问题有一个小的字符串 另外有一个巨大的字符串求两个字符串的最大公共子串3.内存池 并发 并发优化(我的解决方案:使用mutex数组)关键代码段如果有超大块出现 如何处理4.Black-Scholes 隐含波动率计算 数值计算方法5.操作系统同步与互斥的关系原创 2016-03-21 23:41:06 · 924 阅读 · 0 评论 -
学长的训诫C++
1.用模板实现一个栈2.编译c++有几步 涉及的模板的高级用法3.实现一个智能指针4.内存池 对象池 线程池的实现5.如何加快C++链接速度6.如何判断一个点在一个凸边形7.more and more8.刚一波原创 2016-02-25 23:22:32 · 3107 阅读 · 0 评论 -
#1094 : Lost in the City 找到几个当年c语言留下的坑
思路很简单对于Hi对象的3x3格子,我们需要存储9个位置。我们将九宫格中的中心2x2位置的单独拿出来做判断,若2x2位置的符合,再去匹配其他8个位置。由于Hi对象可以旋转,因此,对于这8个位置需要用一个一维数组存储八个位置。在进行遍历操作的时候,需要判断m数组的值是否满足地图数组a的值,并且将a中值旋转的四种状态都要做判断。当然,做函数式处理,也是很重要的。代码如下:voi原创 2016-03-17 15:04:12 · 504 阅读 · 4 评论 -
Build Your Own Lisp chapter4的小错误 error: editline/history.h: No such file or directory的解决
链接 editline 并编译如果你使用前面我们提供的命令行来编译这个程序,你会得到类似于下面的错误,因为在使用之前,你必须先在电脑上安装 editline 库。fatal error: editline/readline.h: No such file or directory #include 在 Mac 上,editline 包含在 Command Line Tools 中,安装原创 2016-06-02 19:39:09 · 1552 阅读 · 0 评论 -
union 和 struct 的区别与联系
union ( 共用体):构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) struct ( 结构体 ):是一种构造类型 用途: 把不同的数据组合成一个整体——自定义数据类型主要区别:1. struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员; 而struct的所有成员都存原创 2016-06-03 17:04:17 · 534 阅读 · 0 评论 -
BuildYourOwnLisp Why we need enum
枚举你或许已经注意到了,lval 的 type 和 err 字段的类型都是 int,这意味着它们皆由整数值来表示。之所以选用 int,是因为我们将为每个整数值赋予意义,并在需要的时候进行解读。举例来说,我们可以制定这样的规则:如果 type 为 0,那么此结构体表示一个数字。如果 type 为 1,那么此结构体表示一个错误。这是个简单而高效的方法。但如果我们的代码中充斥了类转载 2016-06-03 16:48:37 · 324 阅读 · 0 评论 -
BuildYourOwnLisp Why we need pointer 为什么我们需要指针
指针在 C 语言中,要表示列表,就必须正确的使用指针。C 语言中的指针一直如洪水猛兽般存在。虽然概念上非常简单,但是用起来却变幻多端,神秘莫测,这使得指针看上去比实际要可怕得多。幸运的是,在本书中我们只会用一些指针在 C 语言中最常规的用法。我们之所以需要指针,主要是由 C 语言中函数的工作方式决定的。C 语言函数的参数全部是通过值传递的。也就是说,传递给函数的实际是实参的拷贝。对于 in原创 2016-06-03 17:14:04 · 437 阅读 · 0 评论 -
栈(Stack)和堆(Heap)
栈(Stack)和堆(Heap)前面说过,我们可以把内存简单粗暴地想象成一个巨大的字节数组。事实上,它被更加合理地划分成了两部分,即栈和堆。有些人可能已经听说过一些关于堆和栈的神秘传说,例如“栈从上往下增长,而堆则是从下往上”,或是“栈的数量很多,但堆只有一个”云云。其实这些事情都是无关紧要的。在 C 语言中,处理好栈和堆确实是件麻烦的事情,但这并不代表它们很神秘。实际上,它们只是内存中的转载 2016-06-03 17:21:32 · 797 阅读 · 0 评论 -
linux后台开发具备能力集锦
作者:马剑飞链接:https://www.zhihu.com/question/20541014/answer/93237381来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试转载 2016-06-04 00:20:44 · 1316 阅读 · 0 评论 -
328. Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.You should try to do it in原创 2016-06-25 19:08:12 · 295 阅读 · 0 评论 -
报错error: no matching function for call to 'std::thread::thread
C++11中,使用std::thread传递函数的要点,需要加上所属Class报错:error: no matching function for call to 'std::thread::thread(<unresolved overloaded function type>, ThreadsTemp&)' threads.push_bac...原创 2018-07-30 14:38:48 · 29449 阅读 · 0 评论