算法与数据结构回顾 – 广义表

算法与数据结构回顾 – 广义表

图源:吟游诗人-狼娘 月巴小鹅 111776313

简述

广义表是线性表的一种推广。线性表要求表中元素拥有统一的类型,而广义表无此限制。需要注意的是,广义表和线性表长度一般认为是有限的,但广义表的深度可以是无限的(即递归表)。

广义表是一种数据结构。对广义表的常见操作包括:

  • 创建
  • 从字符串形式创建
  • 销毁
  • 复制
  • 取表头
  • 取表尾
  • 判空
  • 求长度
  • 求深度
  • 从表头插入
  • 从表头删除
  • 遍历

广义表是Lisp语言的基本数据结构。后文以Common Lisp和C++给出各基本操作的示例。

阅读更多
现代C语言:C23标准中值得注意的变化

现代C语言:C23标准中值得注意的变化

图源:Anmi - 水族館 83088427

虽然没有固定标准,但一般将C99之后的C语言标准称为“现代C语言”;目前的最新标准为C23;

C23标准中值得注意的变化

以下是一部分我认为比较重要的变化,完整变化列表可以参阅 https://en.cppreference.com/w/c/23 或ISO标准文档。

替代

  • <assert.h>中的static_assert()宏被替代,变成了static_assert关键字;
  • <threads.h>中的thread_local()宏被替代,变成了thread_local关键字;
  • <time.h>中的ctime()函数弃用,请使用ctime_s()替代;
  • <time.h>中的asctime()函数弃用,请使用asctime_s()替代;
  • <stdnoreturn.h>_Noreturn标识符均弃用;
  • <stdalign.h>中的alignas()alignof()宏被弃用,请直接使用_Alignas_Alignof关键字;
阅读更多
Synthesizer V 插件开发入门(1)

Synthesizer V 插件开发入门(1)

图源:紺屋鴉江 - 《銀河》,Pid:94649749

写在前面

本文并非“零基础入门”型的文章。阅读此文章前,建议你已经:

  • 使用过 Synthesizer V Studio(即 SVR2,以下用此简称代替),了解过 VOCALOID,知道“插件”的作用是什么;
  • 已购买 Synthesizer V Studio Pro 版本,以便于插件的开发与调试;
  • 有一定的编程经验,使用过 Lua 语言;

Synthesizer V Studio Pro的正版授权可从 平行四界官方淘宝店 Dreamtonics官方淘宝店 获取。关于 Lua 编程的资料数不胜数,可从 菜鸟教程 等网站获取。

另外,阅读时,可以配合下面两个文档:

正文部分存在问答部分,可能与后文的知识关联。你可以按顺序阅读,也可以在阅读完其他内容后再阅读问答部分。

以下是文章正文。

阅读更多
【持续更新】算法与数据结构回顾 - 大纲

【持续更新】算法与数据结构回顾 - 大纲

图源:@Rella 《glow》 91882132

由于高中接触过,大学本科期间又深入了些,以防忘记记一些注意事项、概念和模板之类的东西。

简单分类

数据结构

  • 一维:
    • 基础:数组(Array),链表(Linked list)
    • 高级:栈(Stack),队列(Queue),双端队列(Deque),集合(Set),映射(Map)等。
  • 二维:
    • 基础:树(Tree),图(Graph)
    • 高级:二叉搜索树(BST),堆(Heap),并查集(Disjoint Set),字典树(Trie)等。
  • 特殊结构:
    • 位运算(Bitwise),布隆过滤器(BloomFilter)
    • 缓存(LRU)
    • ……
  • ……
阅读更多
PHP 7.3 及其插件编译

PHP 7.3 及其插件编译

图源:《ルアン・メェイ》 辷 114649969

今后文章会同步更新在我的 CSDN 博客,但是还是以这个自己拿阿里云服务器搭建的网站为主的。不过CSDN有个好处是可以被国内的搜索引擎抓取到,嗯,省得我做搜索引擎优化了啊。

如果有人只想看完整写完的文章的话,也请左拐 CSDN,或者这里。主站开了七牛云加速,顺便做了 Google 、 Bing 和百度等的搜索引擎收录。最近身体欠佳。原定的学习计划和博客更新计划也不出意外的咕了。没有办法。健康是第一要务。等待过后慢慢去补吧。

编译 PHP

安装必要环境

包含编译器,和编译需要的库。所有的编译操作均在 Ubuntu 19.04 下进行。

1
2
sudo apt-get update
sudo apt install -y gcc g++ cmake make libxml2-dev libbz2-dev libcurl4-gnutls-dev libzip-dev libwebp-dev libpng-dev libjpeg-dev libxpm-dev libfreetype6-dev

下载源码

你可以 clone GitHub 上的代码:

1
git clone https://github.com/php/php-src.git

当然也可以到 php.net 下载源码并解压:

1
2
3
4
wget https://www.php.net/distributions/php-7.3.7.tar.gz
tar -xvzf php-7.3.7.tar.gz
rm php-7.3.7.tar.gz
cd php-7.3.7/

开始编译

首先读取插件列表(插件列表没有修改的时候可跳过此步骤):

1
./buildconf --force
阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×