数据结构之栈 (二):链式栈实现

链栈的原理和链表的原理一样,通过一个 next 指针把一个个的节点链起来: 初始时,栈底指针和栈顶指针都为空,每插入一个节点,栈顶指针改变,当前插入节点的 next 指针指向之前的栈顶元素。 同样,在使用 top() 和 pop() 两个方法时,也要先判断栈是否为空。 一、栈节点 [crayon-694973b45 ... 阅读更多

数据结构之栈:使用数组和 vector 实现栈

栈是一种 「先进后出」 的数据结构,最先进入栈的元素位于栈的底端,最后进入的位于顶端。 其主要的接口函数为: pop(): 弹出顶端元素 size(): 返回栈容量 empty(): 判断栈是否为空 push(T data): 添加元素到栈顶 top(): 返回顶端元素 注意事项 对于栈的 top() 和 p ... 阅读更多

设置 vim 打开文件时光标在上次退出位置

在.vimrc 文件中添加:

如果添加后无效,可能是~/.viminfo 和~/.vimrc 这两个文件的所有者非当前用户导致的。 因为 vim 运行过程中的操作记录 (如历史操作和记录上次退出的行数等) 都是写入到~/.viminfo 中去的,如果 ... 阅读更多

Ubuntu16.04 安装搜狗输入法

ubuntu 版本 16.04:

搜狗输入法基于 fcitx,ubuntu 默认是 IBus,如要使用先得添加 fcitx 相关组件的支持。 下载安装 fcitx 极其相关组件:

然后在 ... 阅读更多

计算机中的字节序

一、概述 字节序用来表示数据在内存中的排布方式,它分为两种:高字节序和低字节序,也被称为大小字节序。因为内存是从低到高布局,所以如果内存的低位存的是数据的低位,该字节序被称为低字节序。而如果内存的低位存的数据高位,该字节序被称为高字节序。 例如一个 32 位 int 类型变量 n=0x12345678(逻辑中 ... 阅读更多

vim 安装 YouCompleteMe 自动补全插件

一、 YouCompleteMe 介绍

YouCompleteMe(简称 YCM) 是一款 vim 的智能补全插件,支持 C/C++, Go, Python... 等多种代码类型补全。

它强大的功能吸引了不少人的使用,但有无数人因为安装它 「折腰」,因为它的安装过程确实很麻烦。

花了一个下午的时间,来回装了两次,终于算是勉强搞定。

首先假定你已经安装好了 vim 和对应的插件管理器:升级安装 vim 8.0 并添加 vundle 插件管理

要注意的是,vim 编辑器要求编译的时候添加了 python 支持。

根据测试,选择 python2 支持会比 python3 省事一些,因为后面安装 cmake 的时候貌似只能使用 python2(具体是不是这样没有去深入研究,目前暂且按 python2 的来) 。

先上一张效果图:

阅读更多

find 命令的基本用法

基本用法:find 路径 选项 -name filename:直接查找该文件名的文件。 -type filetype:通过文件类型查找文件。 f:普通文件 b:块设备文件 c:字符设备文件 d:目录 l:链接文档 s:套接字文件 -atime +n/-n:访问或执行的时间大于或小于 n 天的文件。 -c ... 阅读更多

ubuntu 16.04 使用包管理时遇到 snapd 出错的解决方法

问题描述 使用 apt update 的时候遇到错误:

解决方案 添加 exit 0 到/var/lib/dpkg/info/snapd.prerm 的第一行尾 (不是文件尾),然后强制删除 snapd: [crayon-694973b4584d5 ... 阅读更多