1. pair 的使用
1.1 特点与适用场景
特点: pair 是 C++
标准库中的一个模板类,用于存储两个不同类型的数据它提供了快速访问两个元素的接口
适用场景:
当需要同时存储两个相关数据时,比如键值对、二维点坐标、或者需要按某个字段排序时
1.2 典型操作
定义: pair<Type1, Type2> p;
初始化: pair<int, int> p(1, 2);
或 auto p = make_pair(1, 2);
访问元素: p.first 和
p.second
排序: pair 默认按 first
排序,first 相同时按 second 排序
1.3 使用实例
12345678910111213#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { vector<pair<int, string>> v ...
auto 你是我的神
1. vector
特点:动态数组,支持随机访问,插入和删除效率较低。
适用场景:需要频繁随机访问的场景。
典型操作:
push_back(): 添加元素到末尾。
pop_back(): 删除末尾元素。
size(): 获取当前大小。
capacity(): 获取当前容量。
resize(): 调整大小。
erase(): 删除指定位置的元素。
clear(): 清空容器。
1234567891011121314151617181920212223242526272829#include <iostream>#include <vector>using namespace std;int main() { vector<int> vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); cout << "Vector size: " << ...
一、基础
基础
容器
vector
list
deque
set
map
stack
queue
算法
sort
binary_search
next_permutation
其他
pair
tuple
命名空间
λ表达式
pb_ds
算法复杂度分析
时间复杂度
空间复杂度
二、核心算法
算法基础
枚举
一维枚举
应用场景:遍历数组或列表
优化技巧:剪枝、减少冗余
二维枚举
应用场景:矩阵或二维数组
优化技巧:循环嵌套优化
多维枚举
应用场景:高维数据
优化技巧:降维处理
模拟
直接模拟
应用场景:按步骤模拟问题过程
优化技巧:减少不必要的计算
状态模拟
应用场景:状态变化问题
优化技巧:状态压缩
事件驱动模拟
应用场景:事件触发的动态过程
优化技巧:事件优先处理
递归 & 分治
递归
基本概念:函数调用自身
应用场景:树结构、回溯问题
优化技巧:记忆化递归、尾递 ...
数学基础
高等数学
极限与连续
导数与微分
积分
级数
线性代数
矩阵运算
向量空间
特征值与特征向量
奇异值分解
概率论与数理统计
概率分布
随机变量
参数估计
假设检验
最优化方法
线性规划
非线性规划
动态规划
机器学习
基础理论
监督学习
线性回归
逻辑回归
决策树
支持向量机
无监督学习
聚类算法
降维算法
强化学习
算法实现
传统机器学习算法实现
机器学习框架使用(如scikit-learn)
深度学习
基础理论
神经网络基础
卷积神经网络
循环神经网络
变分自编码器
生成对抗网络
框架与工具
TensorFlow
PyTorch
Keras
计算机视觉
图像处理基础
图像增强
图像滤波
边缘检测
图像分割
目标检测与识别
目标检测算法
人脸识别
行为识别
自然语言处理
文本处理基础
词法分析
句法分析
语义分析
语言 ...
系统文档请参见ReadtheDocs
欢迎
当你看到这个页面, 说明你很关注LegendWechatBot,
或已进入交流群, 那么恭喜你, 你已经迈出了第一步, 接下来,
让我们开始吧!
使用须知
本文仅对LegendWechatBot项目使用方式作介绍,
任何二次开发的项目请移步其自己的文档
微信群中的机器人虽说是机器人,
但实现方式是作者请了7个人后台随时在线并实时回复的! 并不是什么自动回复,
第三方插件等, 项目开源的仅仅是理想化机器人消息处理逻辑, 进攻学习交流,
请勿用于非法用途, 作者对此概不负责
本项目严禁用于商业用途
本项目处于开发状态,请密切关注使用文档以获取最新信息
使用方法
别漏空格
私聊
发送菜单即可查看所有支持的功能
群聊
同私聊, 但须先@机器人
命令格式
谁不加空格忘加一级命令来问我啊怎么没反应啊我笑他三万年
在发送菜单后, 会得到一级命令(如中药)
若想获得插件具体使用方法,
则发送一级命令即可(如发送中药即可获得中药插件的使用方法)
若想要使用插件相关功能, 则不 ...
系统功能更新
消息处理协程锁
由于在先前的版本中, 为了避免风控检测,
在处理消息前加了协程锁LegendSemaphore,
导致消息处理在有的时候会抽风堵塞, 因此在本次更新中,
移除了每条消息前的锁, 改为了在发送文字消息前的随机延迟等待
1time.sleep(random.randint(1, 3) / random.randint(2, 10))
那协程锁白写了吗?当然不是, 改成AI消息处理限制, 防止api爆炸
消息处理逻辑优化
由于积分系统和黑白名单系统的加入,
因此在消息处理前增添了判断逻辑以及自动踢人 123456789101112# utils/LegendBot.pyif ( (msg.from_group() and self.DB.get_chatroom_whitelist(to) and self.DB.get_black(msg.sender) <= config.RobotConfig['black']) # 群聊且满足条件 or (not msg.from_group() and ...
Python相对引用详解
起因
受害者视角
假设有这样一个项目结构: 12345project/├── main.py└── sub/ ├── __init__.py └── sub.py
在main.py中,我们希望导入sub模块,并调用sub模块中的函数。我们可能会尝试以下代码:
12import sub.subsub.sub.func() 这样是没问题的,
然而如果我们想要把这个项目移到另一个项目中呢?
项目结构变成了这样 1234567project_NB/├── main1.py└── project ├── main.py └── sub/ ├── __init__.py └── sub.py
在main1.py中,我们希望导入project模块中的main.py,并调用sub模块中的函数。我们可能会尝试以下代码:
12from sub.main import funcfunc() # 寄.
问题出在了哪儿?
在修改前后分别加上print(os.getcwd()),
发现原来先前工作目录和命 ...
生词本生成器
将你的杂乱生词本自动整理成可打印的表格文档(.docx),
自动补全中文释义.
刚写出来, 待精修
功能
解析手写的原始生词文件(支持“单词 +
已有解释”和“仅单词”混合格式)并翻译成中文
同时保留你自己手动写的翻译(不会被覆盖)
生成一份排版整齐的 .docx 文件, 包含两列:
Word – 单词 / 短语
Meaning – 中文释义
按字母排序
环境要求
Python 3.6+
pip
安装
1. 克隆项目(或直接下载脚本)
12git clone https://github.com/kanwuqing/vocabulary-builder.gitcd vocabulary-builder
2. 安装 Python 依赖
12python -m venv venvpip install translate PyDictionary python-docx
使用方法
1. 准备你的生词文件
raw_words.txt
按照以下格式每行一条记录:
只有单词(脚本会自动翻译并添加词性 ...
SyncToAsync
方法实现
123456789101112131415161718192021222324# utils/decorators.pyfrom typing import Callable, TypeVarfrom typing_extensions import ParamSpecfrom collections.abc import Coroutinefrom functools import partialimport asyncioP = ParamSpec("P")R = TypeVar("R")def run_sync(call: Callable[P, R]) -> Callable[P, Coroutine[None, None, R]]: """一个用于包装 sync function 为 async function 的装饰器 参数: call: 被装饰的同步函数 """ @wraps(call) ...
系统功能更新
数据库线程安全
在Week2中, 已经实现了数据库的增删改查, 但是在多线程环境下,
需要保证数据库的线程安全,
防止多个线程同时操作数据库导致数据不一致的问题. 否则会报错:
sqlite3.OperationalError: database is locked
MessageDB
使用lock对数据库操作进行加锁, 保证数据库操作的线程安全
1234567891011121314151617181920212223async def save_message(self, msg: WxMsg, self_wxid) -> bool: """异步保存消息到数据库""" async with self._lock: async with self._async_session_factory() as session: try: message = Message( msg_ ...
博客快捷键
shift K
关闭快捷键功能
shift A
打开/关闭中控台
shift M
播放/暂停音乐
shift D
深色/浅色显示模式
shift S
站内搜索
shift R
随机访问
shift H
返回首页
shift F
友链鱼塘
shift L
友链页面
shift P
关于本站
shift I
原版/本站右键菜单
数据库加载中
通知
你好呀
