2 seineo

尚未进行身份认证

我要认证

CS路上不停歇

等级
TA的排名 5w+

图论:最大流最小割详解

最大流与最小割是十分重要且应用广泛的内容,本文用“水流”与“水管”类比,先讨论最大流问题,然后再说明最大流与最小割的特殊关系,我们还将讨论一些实际中会使用的相关算法及其实现。见:图论:最大流最小割详解...

2020-06-27 21:36:11

图论最常用的最短路算法详解及实现

超详细解释最短路算法:BFS、Dijkstra、A*、Bellman-Ford及Floyd-Warshall,并给出实现。见:图论:常用的最短路算法详解

2020-06-23 13:26:30

程序设计实践:基础数据结构与算法

算法和数据结构是程序的基石,几乎每一个程序都需要它们,但绝大多数程序都不需要发明新的算法和数据结构。本章基本是围绕着对HTML中name-value键值对的处理,阐述了满足于绝大多数程序需求的基本算法和数据结构,包括搜索、排序、链表、树和哈希表等。笔记和发散讨论见:Algorithms and Data Structures。欢迎在这里提出问题、给出建议。...

2020-06-16 09:35:09

程序设计实践:好的代码风格

什么是好的代码风格,第一章讨论了包括命名、语句、宏、幻数和注释等重要内容。笔记和发散讨论见:Style。欢迎在这里提出问题、给出建议。

2020-06-03 17:03:20

getchar函数的使用易错点

详细解析为什么char ch = getchar()是错误的,而应该是int ch = getchar()。见:https://seineo.github.io/2020/06/01/int-ch-getchar/

2020-06-02 00:28:42

dotfiles

最近了解到了dotfiles,觉得用github来维护自己的dotfiles是一件有益的事。现就把链接放在这里,有兴趣的朋友可以参考下。(当然,建议不要直接复制,因为要知道自己的设置是有什么具体用处,才能更好地使用它)我的dotfiles:https://github.com/seineo/dotfiles...

2020-04-08 01:29:50

数据结构与算法分析(C语言描述)课后习题答案(Github)

最近在慢慢写数据结构与算法分析(C语言描述)的课后习题答案。地址:https://github.com/seineo/Data-Structures-and-Algorithm-Analysis-in-C(Please star it!!!)有兴趣的朋友也可以follow一下:https://github.com/seineo...

2020-03-13 11:23:33

Linux下安装Vim插件YouCompleteMe

说实话,这个插件真的很容易装,但是我之前老是失败。实际上这个是墙的锅,github的clone速度太太太慢了!平时的一些仓库可以用gitee解决问题,但是这个插件他又要调用github上的其他仓库所以就很烦。(所以我就翻了个墙,生活直接美好起来说下步骤吧,以防万一建议按顺序来全试一遍.#我没用vundle,虽然我之前装好了sudo apt-get install build-essenti...

2020-03-05 18:32:55

Linux环境下C语言getopt函数的详细解析

该函数在头文件getopt.h中。函数原型:int getopt(int argc,char * const argv[ ],const char * optstring);返回值为int类型,其实解析成功一个选项时(可能这时看不懂,没关系,后面会解释)这个返回的就是一个字符,因为字符可以转为整数。若解析完毕,则返回-1。前两个参数大家都知道,就是main函数的参数选项:argc是参数...

2020-03-02 17:41:38

CSAPP Lab Assignments

最近在慢慢看深入理解计算机系统(CSAPP),也有在做配套lab。地址:https://github.com/seineo/Workshop/tree/master/CMU_15-213_labs如果对你有帮助,请收藏支持(github页面右上角star)有兴趣的朋友也可以follow一下:https://github.com/seineo...

2020-02-22 14:44:00

Linux下使用valgrind检测内存泄漏

若尚未下载valgrind,使用以下命令下载:sudo apt-get install valgrind写好程序后,编译(此处是在CLion上举例):g++ binary_heap_test.cpp binary_heap.cpp -o binary_heap_test (若不了解如何使用gcc/g++编译,见另一篇文章:Linux下CLion使用命令行编译运行程序)...

2020-01-12 13:22:43

Linux下CLion使用命令行编译运行程序

CLion左下角Terminal 进入命令行假设要处理的源文件为 binary_heap_test.cpp如果没有自写头文件:可直接如下编译:g++ binary_heap_test.cpp -o binary_heap_test-o 为输出文件参数,后跟设定的输出文件(可执行文件)名,此处设为binary_heap_test.这样会生成可执行文件binary_heap_...

2020-01-12 12:22:43

C++ Primer StrVec类和简化的string类

学习动态内存管理确实很累,看+写 花了很长的时间。写这两个类使我对vector、string的内部实现、动态分配的方法有了更深的理解。更重要的是,随着写的类越来越多,我慢慢地体会到了:写一个类,构造其结构是十分重要的。哪些是public,哪些是private,哪些函数应该作为成员函数,哪些函数应该作为友元函数,而哪些代码应该写成一个函数,其作为函数时参数、返回值的确定又应当考虑哪些……诸如此类,这...

2019-07-02 15:15:51

C++ Primer Message和Folder类

在写包含这两个类的头文件时,有一个问题值得注意。我是先写Message类后写Folder类的,而这两个类又需要操作对方的成员,因此要定义为友元类。而且,在定义Message类前一定要有Folder类的前向声明,Message有用到Folder类对象的函数都需定义在Folder类后,否则无法编译通过(未定义当然是无法使用的)。因此我所写的头文件的结构为: Folder类前向声明 - Mes...

2019-06-30 17:48:33

C++ Primer 行为像值的类与行为像指针的类Hasptr

#ifndef HASPTR#define HASPTR#include<iostream>#include<string>class HasPtr //行为像值的类{ friend void swap(HasPtr &hp1, HasPtr &hp2); friend bool operator<(const HasPtr ...

2019-06-30 16:37:57

C++ Primer 文本查询程序

题目:我们将实现一个简单的文本查询程序,我们的程序允许用户在一个给定文件中查询单词。查询结果是单词在文件中出现的次数及其所在行的列表。如果一个单词在一行中出现多次,此行只列出一次。行会按照升序输出。我们可以直接使用vector 、set和map来直接编写文本查询程序,但我们在这里定义一个抽象的解决方案会更有效。在看了书上题目要求及其思路后,感觉不难,便自己写了一个,代码还用到了前面学的泛型...

2019-05-31 21:26:10

Python上机实验3

前言由于最近时间比较紧,这次就不解析过多了。参考链接:unittest:https://docs.python.org/3/library/unittest.html?highlight=unittest#module-unittestpickle:https://docs.python.org/3/library/pickle.html?highlight=pickle#mo...

2019-05-28 23:28:30

啊哈算法第六章 最短路径

通过之前的学习,我们知道可以使用DFS或BFS求出两点间的最短路径。还有什么别的办法呢?一、Floyd-Warshall算法我们知道,要想让两点的路程变短,我们需要引入第三个点(k),并通过这个点a->k->b,才有可以缩短原来只从a->b的路程。而每个点都有可能使另外两个点之间的路程变短,这就得出了Floyd-Warshall算法。主要思想:点。最初只允许从1号...

2019-05-23 17:28:07

C++ Primer 编写StrBlob类(含相关问题)

题目:编写一个StrBlob类,使多个对象能共享相同的底层数据(即某个对象被销毁后,若仍有对象使用其数据,则不会销毁底层数据),并且对象要能进行一定的读写操作。为了实现数据共享,我们使用一个shared_ptr管理动态分配的vector,只有某个对象的引用次数为0时,智能指针才会将其数据自动销毁。读写操作:定义size()、empty()、push_back()、pop_back()、fron...

2019-05-20 22:52:31

C++ Primer 一处错误更正

P389 表11.7中写道:c.equal_range(k) 返回一个迭代器pair,表示关键字等于k的元素的范围。若k不存在,pair的两个成员均等于c.end()错误在最后一句:若k不存在,pair的两个成员均等于c.end()学习这里的时候,我将lower_bound、upper_bound、equal_range都手敲试了一下,发现在k元素不存在时,equal_range...

2019-05-18 18:07:33

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。