C++标准模板库STL介绍(一)

本文主要包括 stack、queue 常用函数的介绍(未完待续···)stack栈,STL 中实现的一个后进先出的容器。push()push(x) 将 x 入栈,时间复杂度为 O(1)top()top() 获得栈顶元素,时间复杂度为 O(1)pop()pop() 用以弹出栈顶元素,时间复杂度为 O(1)empty()empty() 可以检测 stack 内是否为空,返回 true 为空,返回 false 为非空,时间复杂度为 O(1)size()size() 返回 stack

Web页请求的历程

在复习完计算机网络后,我们来总结一下一次完整的 Web 页请求历程。通过对已经学过的协议做一个综合的、全面的展望,我们希望总结一下沿协议栈向下的旅程。而做这个“全面的”展望的一种方法是识别许多协议,这些协议涉及满足甚至最简单的请求: 下载一个 Web 页面。下图展示了我们的场景:一名学生 Bob 将他的便携机与学校的以太网交换机相连,下载一个 Web 页面(比如说 www.google.com)。如我们所知,为满足这个看起来简单的请求,背后隐藏了许多细节。准备: DHCP、U

信号量与PV操作

处理进程同步和互斥的问题,用的最多的是信号量机制。它只能被两个标准的原语 wait(s) 和 signal(s) 访问,也可记为 P(s) 和 V(s)P(s): 如果 s 是非零的,那么 P 将 s 减 1,并且立即返回。如果 s 为 0,那么就立即挂起这个线程,直到 s 变为非 0,而一个 V 操作会重启这个线程。在重启之后,P 操作将 s 减 1,并将控制返回给调用者。V(s): V 操作将 s 加 1。如果有任何线程阻塞在 P 操作等待 s 变成非零,那么 V 操作会

读书杂记之《浪潮之巅》

近一百多年来,总有一些公司很幸运地、有意无意地站在技术革命的浪尖之上。一旦处于那个位置,即使不做任何事情,也可以随着波浪顺顺当当向前漂十年甚至更长的时间。在这十几年到几十年间,他们代表着科技的浪潮,直到下一波浪潮的来临。本书概述《浪潮之巅》这本书主要围绕美国硅谷的 AT&T、IBM、苹果、Intel、微软、甲骨文、Google 等公司的兴衰沉浮来展开(Facebook介绍的较少且未包括总部位于西雅图的亚马逊),其中穿插介绍计算机领域的摩尔定律等专业知识,以及实业、华尔

高数必记的函数图像

引言:本文的五个函数图像,是宇哥要求我们必须得记住的。我把它们各自的周长、面积等特性也附在一旁,以供复习。心形线极坐标方程: \( \; r = a\,(1+\cos \theta), \, \theta \in [\, 0, \pi \,] \)周长: \( \; \frac{1}{2} L = 4a \)面积: \( \; \frac{1}{2}S = \frac{3}{4} \, \pi a^2 \)注: 图中 a = 1, \( \theta \in [\, 0, 2

记不住的高数公式

这你都记不住?今晚给我复习到两点!基本常识不等式\( |\,\,|\, a \,|\, - \, |\, b \,|\,\,| \leq |\, a \pm b \,| \leq |\,a \,| + |\, b \,| \)\( \frac{2}{\frac{1}{a}+\frac{1}{b}}\, \leq \, \sqrt{ab} \, \leq \, \frac{a+b}{2}\, \leq \, \sqrt{\frac{a^2+b^2}{2}} \)\( \sqr

Web页请求的历程

在复习完计算机网络后,我们来总结一下一次完整的 Web 页请求历程。通过对已经学过的协议做一个综合的、全面的展望,我们希望总结一下沿协议栈向下的旅程。而做这个“全面的”展望的一种方法是识别许多协议,这些协议涉及满足甚至最简单的请求: 下载一个 Web 页面。下图展示了我们的场景:一名学生 Bob 将他的便携机与学校的以太网交换机相连,下载一个 Web 页面(比如说 www.google.com)。如我们所知,为满足这个看起来简单的请求,背后隐藏了许多细节。准备: DHCP、U

处理机与CPU

在复习进程管理这一章时,书上一会写处理机,一会写 CPU 的,我有些迷惑。遂查阅资料以记之。处理机> 处理机是计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(CPU),主存储器,输入/输出接口。处理机加接外围设备就构成完整的计算机系统。简单来说,处理机指的是硬件,它包含 CPU 在内。CPU> 中央处理器(CPU)是一块超大规模的集成电路,是一台

使用gdb调试程序

在 Linux 下写 C 语言程序,不会 gdb 可不行,这篇文章就来教大家我自己如何使用 gdb 来调试 C 程序。后期还会再写一篇关于 gcc 的命令参数的文章,那就比较简单了。编译开始调试之前,必须用程序中的调试信息编译要调试的程序。这样,gdb 才能够调试所使用的变量、代码行和函数。即,使用 ‘-g’ 选项来编译程序:gcc -g main.c -o main运行 gdb在 shell 中,可以使用 命令并指定程序名作为参数来运行 gdb,例如 ```gdb main