一、list 概述 来自头文件:#include <list> 类型:双向链表容器 特点: 插入/删除操作高效(尤其是中间插入/删除) 不支持随机访问(不能使用 []) 支持迭代器(双向迭代器) 可存储任意类型元素(包括自定义类型) 二、创建与初始化1234567891011121314151617#include <list>using namespace std;// 空 listlist<int> a;// 指定大小(值为默认0)list<int> b(5);// 指定大小与初始值list<int> c(3, 10); // [10, 10, 10]// 初始化列表list<int> d = {1, 2, 3, 4};// 拷贝构造list<int> e(d); 三、常用成员函数与方法分类总览1️⃣ 访问元素 函数 说明 front() 获取第一个元素 back() 获取最后一个元素 123list<int> l = ...
C/C++
未读#include <fstream> 是 C++ 中用于进行文件输入输出(I/O)操作的标准头文件,它提供了对文件读写的支持,主要包括三个类: 一、<fstream> 中的三个主要类 类名 功能 继承自 ifstream 用于读取文件 istream ofstream 用于写入文件 ostream fstream 用于读写文件 iostream 二、常用方法详解1. 文件打开方式(可用作 open() 第二个参数) 模式名 含义 ios::in 以读模式打开 ios::out 以写模式打开(默认覆盖) ios::app 追加写入到文件末尾 ios::ate 打开文件并移动到文件尾部 ios::trunc 如果文件存在,清空内容 ios::binary 以二进制模式打开 可以用 | 组合多种模式,例如:ios::in | ios::out 2. 常用成员函数 函数 说明 open(filename, mode) 打开文件 is_open() 检查文件是否成功打开 close( ...
#include <json-c/json.h><json-c/json.h> 是 JSON-C 库 的主要头文件,用于在 C 语言中 解析、生成和操作 JSON 数据。它是 Linux 系统下最常用的 JSON 处理库之一。 1. 核心功能 功能 关键函数/对象 用途 JSON 对象创建 json_object_new_*() 创建各种类型的 JSON 对象 JSON 解析 json_tokener_parse() 将 JSON 字符串解析为 JSON 对象 JSON 生成 json_object_to_json_string() 将 JSON 对象转换为 JSON 字符串 对象操作 json_object_object_*() 操作 JSON 对象中的键值对 数组操作 json_object_array_*() 操作 JSON 数组 类型检查 json_object_get_type() 获取 JSON 对象的类型 2. 安装 JSON-C在 Linux 上安装: 12345# Debian/Ubun ...
#include <sys/stat.h><sys/stat.h> 是 Unix/Linux 系统编程中用于 文件元数据操作 的核心头文件,提供了 文件属性检查、权限管理、文件创建 等功能。 1. 核心功能 功能 关键函数/宏 用途 文件信息获取 stat(), fstat(), lstat() 获取文件元数据 文件权限检查 S_ISDIR(), S_ISREG() 等宏 判断文件类型 权限位操作 S_IRUSR, S_IWGRP 等宏 设置/检查文件权限 文件创建 mkdir(), mkfifo() 创建目录或命名管道 文件模式修改 chmod(), fchmod() 修改文件权限 2. 详细函数解析2.1 文件信息获取(1) stat() - 通过路径获取文件信息1int stat(const char *pathname, struct stat *statbuf); 功能:获取文件元数据(如大小、权限、时间戳)。 示例: 12345678910#include <sys ...
#include <unistd.h>1.介绍 <unistd.h>(UNIX Standard Header)是 POSIX 操作系统 API 的核心头文件之一,主要用于 Unix/Linux 系统编程。它提供了大量与 系统调用(System Calls) 相关的函数,涵盖 文件操作、进程控制、系统信息、终端管理、管道通信 等核心功能。 功能类别 主要函数 文件操作 read(), write(), close(), unlink(), lseek(), fsync() 进程控制 fork(), exec(), getpid(), getppid(), exit(), _exit(), wait() 系统信息 gethostname(), getcwd(), chdir(), sysconf() 时间管理 sleep(), usleep()(已弃用,建议用 nanosleep()) 终端/设备管理 isatty(), ttyname(), tcgetpgrp(), tcsetpgrp() 管道通信 pipe ...
#include <pthread.h><pthread.h> 是 POSIX 线程(Pthreads) 的标准头文件,用于 多线程编程。它提供了创建、同步和管理线程的函数,是 Linux/Unix 系统下多线程开发的核心库。 1. 核心功能 功能 关键函数 用途 线程创建 pthread_create() 创建新线程 线程终止 pthread_exit(), pthread_cancel() 终止当前线程或指定线程 线程同步 pthread_mutex_*, pthread_cond_* 互斥锁、条件变量 线程连接 pthread_join() 等待线程结束并获取返回值 线程属性 pthread_attr_* 设置线程属性(如栈大小、分离状态) 2. 详细函数解析2.1 线程创建与管理(1) pthread_create() - 创建线程12int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void ...
#include <arpa/inet.h><arpa/inet.h> 是 网络编程 核心头文件,提供 IP 地址转换 和 字节序处理 功能,主要用于 IPv4/IPv6 套接字编程(Socket Programming)。 1. 核心功能 功能 关键函数/宏 用途 IP 地址转换 inet_aton(), inet_addr(), inet_ntoa() IPv4 字符串 ↔ 二进制转换 现代 IP 转换 inet_pton(), inet_ntop() 支持 IPv4/IPv6 的可移植转换 字节序转换 htons(), htonl(), ntohs(), ntohl() 主机字节序 ↔ 网络字节序(大端序) 2. 详细函数解析2.1 IP 地址转换(IPv4)(1) inet_aton() - 字符串 → 二进制(推荐)1int inet_aton(const char *cp, struct in_addr *inp); 功能:将点分十进制 IPv4 地址(如 "192.16 ...
vue 源码分析注:来自 GitHubvue 源码逐行注释分析),仅仅用来学习使用 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818 ...
实现可过期的 localstorage 数据 localStorage 默认不会过期,数据会一直保留,除非用户手动清除。因此要实现 具有过期机制的 localStorage 缓存 主要有两种解决办法: 惰性删除 定时删除 1.惰性删除1.含义:只有在读取某个键值时才判断其是否过期,若过期则删除该项并返回空值 2.实现思路 存储数据时,将数据和过期时间一起存入(如使用一个对象 { value, expire })。 获取数据时,检查 expire 是否早于当前时间,若过期则删除该项。 3.优缺点优点:实现较为简单,不需要额外的定时器 缺点:如果莫一条数据一直没有被读取到,那么可能就不会被删除,会占用内存 4.代码实现123456789101112131415161718192021// 传入的experies是秒数function setItem(key, value, expires) { const data = { value: value, // 注意:这里的Date.now()返回的是毫秒数, 所以乘以1000转换为 ...