第21月第4天 leetcode codinginterview c++
1.leetcode
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
https://blog.csdn.net/freeelinux/article/details/60472659
http://www.cnblogs.com/willaty/default.html?page=2
python
https://www.cnblogs.com/Lin-Yi/
2.coding interview
https://github.com/fangniu/TargetOffer/
3. c++
陈硕
多线程服务器的常用编程模型
https://www.cnblogs.com/Solstice/category/290530.html
解释:因为apache没使用过,所以没总结。
|
函数库调用
|
系统调用
|
|
在所有的ANSI C编译器版本中,C库函数是相同的
|
各个操作系统的系统调用是不同的
|
|
它调用函数库中的一段程序(或函数)
|
它调用系统内核的服务
|
|
与用户程序相联系
|
是操作系统的一个入口点
|
|
在用户地址空间执行
|
在内核地址空间执行
|
|
它的运行时间属于“用户时间”
|
它的运行时间属于“系统时间”
|
|
属于过程调用,调用开销较小
|
需要在用户空间和内核上下文环境间切换,开销较大
|
|
在C函数库libc中有大约300个函数
|
在UNIX中大约有90个系统调用
|
|
典型的C函数库调用:system fprintf malloc
|
典型的系统调用:chdir fork write brk;
|
https://blog.csdn.net/longbei9029/article/details/79561579
android
https://blog.csdn.net/liangxiaozhang/article/details/17071223
stl
http://fpsalmon.usc.es/manuales/STL/STL_doc/Vector.html
https://blog.csdn.net/jmh1996/article/details/77968364
https://blog.csdn.net/wenqian1991/article/details/19540385
http://www.cnblogs.com/runnyu/default.html?page=1
time_wait
https://blog.csdn.net/usbdrivers/article/details/9294993
动态规划
https://blog.csdn.net/u013616945/article/details/77531097
getClimbingWays
https://www.sohu.com/a/153858619_466939
http://ykksmile.top/posts/55495/
面试
https://blog.csdn.net/hackbuteer1/article/details/7348968
c++11
https://book.douban.com/subject/26419368/
Buffer::Buffer() {
maxBuffer_ = ;
}
void Buffer::enqueue(int client) {
unique_lock<mutex> lck(mutex_);
while (queue_.size() >= maxBuffer_) queueNotFull_.wait(lck);
queue_.push(client);
queueNotEmpty_.notify_one();
}
int Buffer::dequeue() {
unique_lock<mutex> lck(mutex_);
while (queue_.size() == ) queueNotEmpty_.wait(lck);
int client = queue_.front();
queue_.pop();
queueNotFull_.notify_one();
return client;
}
https://github.com/SchuylerGoodman/messaging_service
拷贝控制(copy control)
copy control 是拷贝 stack a; stack b = a; 和赋值 stack b; b = a; 的合称。
当拷贝一个 ADT 时会发生什么?比方说拷贝一个 stack,是不是应该把它的每个元素按值拷贝到新 stack?
如果语言支持显示控制对象的生命期(比方说C++的确定性析构),而 ADT 用到了动态分配的内存,那么 copy control 更为重要,不然如何防止访问已经失效的对象?
由于 C++ class 是值语义,copy control 是实现深拷贝的必要手段。而且 ADT 用到的资源只涉及动态分配的内存,所以深拷贝是可行的。相反,object-based 编程风格中的 class 往往代表某样真实的事物(Employee、Account、File 等等),深拷贝无意义。
C 语言没有 copy control,也没有办法防止拷贝,一切要靠程序员自己小心在意。FILE* 可以随意拷贝,但是只要关闭其中一个 copy,其他 copies 也都失效了,跟空悬指针一般。整个 C 语言对待资源(malloc 得到的内存,open() 打开的文件,socket() 打开的连接)都是这样,用整数或指针来代表(即“句柄”)。而整数和指针类型的“句柄”是可以随意拷贝的,很容易就造成重复释放、遗漏释放、使用已经释放的资源等等常见错误。这方面 C++ 是一个显著的进步,boost::noncopyable 是 boost 里最值得推广的库。
http://www.cppblog.com/Solstice/archive/2011/08/16/153593.html
这里的解决方案就是智能指针,而且是引用计数型的智能指针。
typedef boost::shared<Socket> SocketPtr;
SocketPtr accept();
这样外部就可以用智能指针去接收,那么何时析构?当然是引用计数为0,也就是我不再需要这个Socket的时候析构。
这样,我们利用了SockerPtr,实现了跟Java类似的Reference语义。
https://www.zhihu.com/question/20368881
linux多线程默认栈大小和最大线程数
https://blog.csdn.net/cherish_2012/article/details/45073399
第21月第4天 leetcode codinginterview c++的更多相关文章
- 第21月第6天 zhihu如何用3个月零基础入门机器学习
1. 我们应该记住,既成的事实一定有它的道理,如果我们不能理解它,恐怕得从自身找原因.如果你交易股票,请记住,如果预测和市场不一致,错的是预测,而不是市场 https://www.cnblogs.co ...
- 如何两个月刷400道leetcode
前言随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例.这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据 ...
- 第21月第9日 windows下使用vim+ctags+taglist
1. windows下使用vim+ctags+taglist 最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装 ...
- 第21月第7日 数据结构 b+树
1.B+树 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等. http://blog.codingla ...
- LeetCode刷题专栏第一篇--思维导图&时间安排
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...
- 用JavaScript刷LeetCode的正确姿势
虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过 ...
- 从心出发-刷leetcode写给5年后的自己
而立之年终未立,不惑而年犹存惑!这或许就是所谓的中年危机吧! 自认为是一个"勤奋"的人,又"未有寸功",天天碌碌,不知何为. "常立志"而未 ...
- javaWeb后端学习记录
java后端学习重点: 1.java语言特性: 基础知识,集合,多线程,并发,JVM,NIO,网络编程,设计模式. (★★★★★) jdk源码中有大量的数据结构与java语言细节.jdk源码着重看c ...
- 2019上海爱奇艺大数据Java实习生-面试记录
目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...
随机推荐
- apache StringUtils 工具类
// org.apache.commons.lang3.StringUtils // 1.IsEmpty/IsBlank - checks if a String contains text 检查是否 ...
- 【洛谷P1060 开心的金明】
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NNN元钱就行”. ...
- 第二十二节,TensorFlow中RNN实现一些其它知识补充
一 初始化RNN 上一节中介绍了 通过cell类构建RNN的函数,其中有一个参数initial_state,即cell初始状态参数,TensorFlow中封装了对其初始化的方法. 1.初始化为0 对于 ...
- Ubuntu: Windows Help Tools For Ubuntu
Virtual Box https://www.virtualbox.org/wiki/Linux_Downloads 装不上Wine时直接装虚拟机吧.RTX真是个坑爹的东西,找不到替代的客户端 迅雷 ...
- Javascript的组成——EMACScript、DOM、BOM
EMACScript:一种规范,JS必须准守它的约定,JS的核心. DOM:文档对象模型,W3C标准,JS访问HTML文档的接口. BOM:浏览器对象模型,没有统一的标准.JS访问浏览器的接口. EM ...
- JS学习笔记Day5
一.变量的作用域 1.作用域:变量的作用范围 2.全局变量:变量在整个程序都是有效的(从程序开始到程序结束变量均有效)在函数体外部定义的变量都是全局变量:在函数体内部 没有用var定义的变量也有可能是 ...
- PHP手动搭建环境
php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...
- 20165232 预备作业3 Linux安装及学习
java第三次预作业--Linux安装及命令入门(学习记录) 通过老师给的学习基于VirtualBox虚拟机安装Ubuntu图文教程,我在自己笔记本上安装Linux操作系统,在安装过程中我遇到一些问题 ...
- linux 配置本地光盘YUM源
1.挂载光盘到 /media下 [root@localhost ~]# mount /dev/cdrom /media 2.直接配置文件了. [root@localhost ~]# cd /etc/y ...
- Java NIO中的Buffer 详解
Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的.缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO ...