浅谈 C++ 类的拷贝控制 在 C++ 语言的学习过程中,类的拷贝控制是一个较为繁杂的知识点。虽然它的难度不是很大,但是细节很多,需要理解记忆。本文介绍 C++ 类的拷贝控制基本内容,即:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数这 5 个函数的写法。 为了便于介绍,我们自己实现一个简单的 string 类,命名为 String 。它只包含一个私有的数据成员:char *data , 2024-01-14 编程语言 > C++ #拷贝控制 #构造函数 #析构函数
如何实现学术论文? 译者注: 本文译自 Implementing academic papers: lessons learned from Elasticsearch and Lucene ,作者:Julie Tibshirani 。本文主要讨论了如何将学术论文中的前沿研究成果引入到实际的软件系统中,讨论了在此过程中需要注意的一些问题。 译者:arcsin2 在开发 Elasticsearch 2024-01-13 方法论 #实现学术论文
Go 语言入门 本文介绍学习 Go 语言一些学习材料,总结学习 Go 时容易理解错误的一些概念,可用于已掌握 C++、Java 等编程语言的程序员快速入门 Go。 1. 基础语法 入门 Go 语言基础语法和关键语言概念的最佳材料是 Go 语言官方提供的在线教程: 英文版:https://go.dev/tour/welcome/1 中文版:https://tour.go-zh.org/welcom 2024-01-08 编程语言 > Go #Go
DB 论文阅读:Hierarchical Navigable Small World 本文介绍向量近似最近邻(Approximate Nearest Neighbor,ANN)的另一经典算法:HNSW(Hierarchical Navigable Small World,HNSW)。HNSW 工业界使用最多的 ANN 算法之一,得到了 Milvus、Elasticsearch、Fasis、pgvector 等系统或库的广泛支持。原文: Efficient and robus 2024-01-03 数据库 > 读论文 #近似最近邻 #ANN #向量相似度检索 #K近邻 #索引
DB 论文阅读:Approximate nearest neighbor algorithm based on navigable small world graphs 本文介绍向量近似最近邻(Approximate Nearest Neighbor,ANN)的一种经典算法:NSW(Navigable Small World,NSW),原文: Approximate nearest neighbor algorithm based on navigable small world graphs 。 摘要 NSW 是一种用于度量空间的近似 K 近邻算法 2023-12-29 数据库 > 读论文 #近似最近邻 #ANN #向量相似度检索 #K近邻 #索引
DB 论文阅读:A Relational Model of Data for Large Shared Data Banks 关系模型是现代数据库的理论基础。1969 和 1970 年,Codd 的两篇论文 《Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks》和《A Relational Model of Data for Large Shared Data Banks》提出了关系模型理论,为后续几十年数 2023-12-25 数据库 > 读论文 #关系模型 #关系代数
从关系代数到 SQL 关系模型与关系代数是关系型数据库系统的基础,SQL 是用户与数据库系统交互的媒介。本文简要介绍关系模型与关系代数的基本内容,从展示关系代数在 SQL 中的对应语句。 1. 关系模型 关系模型是对数据库系统的抽象,其用 “关系” 来表示数据库,而隐藏数据在数据库系统内部是如何组织的。关系模型的核心原则是: 以简单的数据结构(关系)存储数据库。 物理存储结构由 DBMS 实现决定。 2023-09-05 数据库 #关系模型 #关系代数 #SQL
Linux 网络编程基础 API 本文是《Linux 高性能服务器编程》阅读记录,供以后查阅参考。推荐阅读原书。 主机字节序和网络字节序转换函数 123456#include <netinet/in.h>uint32_t ntohl (uint32_t __netlong); // network to host longuint16_t ntohs (uint16_t __netshort); // n 2023-08-11 Linux > 网络编程 #socket #Linux
什么是向量数据库? 译者注: 本文译自 What is a Vector Database? ,作者:Roie Schwaber-Cohen 。译文与原文基本相同,删除部分不影响理解向量数据库基本概念的内容。 译者:arcsin2 随着人工智能的发展,出现了许多涉及大语言模型、生成式人工智能和语义搜索的应用程序。这些新应用都依赖于向量嵌入——一种包含语义信息、对人工智能在执行复杂任务时获取理解并保持 2023-08-03 数据库 > 向量数据库 #数据库 #向量数据库 #Vector Database
使用 WSL 搭建 Linux 开发环境 如何方便、快捷地在 Windows 和 Linux 两个操作系统切换,以既能够使用 Windows 的办公软件等,也能够使用 Linux 的开发工具,是一个困扰不少程序员的问题。通常的解决方案有以下几种: 双系统:系统之间切换必须关机并重启;能够使用最原汁原味且无性能损失的操作系统 虚拟机:方便系统之间切换;启动关闭较慢,虚拟机软件较沉重 远程开发机:原生 Linux 系统,通常硬件 2023-07-31 工具 #Linux #Windows Subsystem for Linux(WSL) #Ubuntu #开发环境搭建