# vlib **Repository Path**: Lamdonn/vlib ## Basic Information - **Project Name**: vlib - **Description**: C语言版STL,包含通用数据类型的队列、堆栈、双端队列、向量、列表、集合、映射等容器,以及通用的排序算法 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 6 - **Created**: 2022-12-03 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: utils **Tags**: None ## README # vlib introduction [中文版](README_zh.md) ## introduction vlib (we-library, meaning our code library), which is a template library in C language. Many functional modules are developed repeatedly in C language development. Repeated development means that the cost of development will increase and the reliability will decrease. . As a template library, vlib provides functions similar to C++ STL, including commonly used containers, and containers can be used for any data type when used reasonably. For example, for the use of linked lists, the common usage is that you need int-type linked lists, and you need to write additions, deletions, changes, and queries for int-type ones. If you change a type of char-type, you need to write a new set. If only one is used in a project The type of linked list is fine, in case the project needs to use multiple types. In C++STL, the list is used to encapsulate the linked list, and you can create any type you want. The original purpose of vlib is to improve the reusability, versatility, and convenience of code in C language development, so that it can be used directly in other projects. ## composition Broadly speaking, it is divided into three categories: algorithm (algorithm), container (container) and iterator (iterator). * container | vlib container | package object | | :------------: | :----------------: | | str | string | | vector | array | | queue | queue | | stack | stack | | deque | double-ended queue | | list | linked list | | set | collection | | map | map | * iterator In vlib, a general iterator for each container is provided. In a container with continuous addresses, you can directly access the address randomly to traverse the container, but in a container with a chain structure, the traversal of the container needs to be accessed through an iterator. Iterators provide a docking medium between algorithms and containers. * algorithm Each container basically includes its corresponding addition, deletion, modification and query operations. In addition, vlib provides general algorithms, including sorting, counting, searching, etc. # Use [str instructions](doc/str.md) [vector instructions](doc/vector.md) [queue instructions](doc/queue.md) [stack instructions](doc/stack.md) [deque instructions](doc/deque.md) [list instructions](doc/list.md) [set instructions](doc/set.md) [map instructions](doc/map.md) [iterator instructions](doc/iterator.md) [algorithm instructions](doc/algorithm.md) # Install * linux ``` make && make install ``` # Revision History ``` +---------+------------+-------------------+----------------------------------------------------------+ | Version | Date | Module | Describe | +---------+------------+-----------+-------+----------------------------------------------------------+ | 1.0.0 | 2023/10/16 | queue | 1.1.0 | 1.Integrate various modules to form vlib 1.0.0 version. | | | | stack | 1.1.0 | 2.New addition of iterators and algorithm modules. | | | | deque | 1.1.0 | 3.Adjust the code of the original module to agree on | | | | str | 1.1.0 | style and specifications. | | | | vector | 1.1.0 | | | | | list | 1.1.0 | | | | | set | 1.1.0 | | | | | map | 1.1.0 | | | | | iterator | 1.0.0 | | | | | algorithm | 1.0.0 | | +---------+------------+-----------+-------+----------------------------------------------------------+ | x.x.x | xxxx/xx/xx | queue | x.x.x | Templete | | | | stack | x.x.x | | | | | deque | x.x.x | | | | | str | x.x.x | | | | | vector | x.x.x | | | | | list | x.x.x | | | | | set | x.x.x | | | | | map | x.x.x | | | | | iterator | x.x.x | | | | | algorithm | x.x.x | | +---------+------------+-----------+-------+----------------------------------------------------------+ ``` # Contact information Lamdonn@163.com