Skip to content

Instantly share code, notes, and snippets.

View qycyfjy's full-sized avatar
😶‍🌫️

qycyfjy

😶‍🌫️
View GitHub Profile
@qycyfjy
qycyfjy / main.cpp
Created October 13, 2023 11:27
MSVC下使用<filesystem>
// ReSharper disable CppClangTidyClangDiagnosticInvalidSourceEncoding
// ReSharper disable StringLiteralTypo
#include <Windows.h> // WideCharToMultiByte用于把宽字符UTF-16转为UTF-8 SetConsoleOutputCP控制控制台输出代码页为UTF-8
#undef min
#undef max
#include <iostream>
#include <iomanip>
#include <sstream>
#include <filesystem>
#include <fstream>
@qycyfjy
qycyfjy / main.cpp
Created September 1, 2023 12:53
AC字典树
#include <QtWidgets/QApplication>
#include "trie.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
{
TrieNode t;
t.Insert("你好世界");
@qycyfjy
qycyfjy / main.cpp
Created September 1, 2023 12:51
简单的信号槽实现
#include <iostream>
#include "sigslot.h"
int main()
{
Echo echo;
Object::connect(&echo, "ping", &echo, "onPing");
Object::connect(&echo, "ping", &echo, "onPing");
echo.try_ping();
@qycyfjy
qycyfjy / proxy
Created September 1, 2023 11:50
WSL下使用Windows代理,使用方法,到proxy文件所在文件夹执行“. proxy 代理端口号”
#!/bin/bash
ip=$(grep '^nameserver' /etc/resolv.conf | tail -n1 | awk '{print $2}')
if [ -z "$1" ]; then
echo "Error: no port specified"
echo "Usage: $0 PORT"
exit 1
fi
@qycyfjy
qycyfjy / WindowsConsoleUnicode.md
Created September 1, 2023 11:47
对Windows下命令行中使用Unicode字符的一些总结
  1. 源文件用UTF-8,设置编译器选项(MSVC的/utf-8),让编译后的可执行文件中的字符串用UTF-8编码;
  2. 不要用chcp(不知道是啥?那太好了),不要在区域设置里设置那个Beta的Unicode UTF-8(不知道是啥?那太好了),但在main的最开始用::SetConsoleOutputCP(CP_UTF8);,也就是外部输入是ANSI,输出给用户是UTF-8;
  3. 程序内纯ASCII不能处理的一切以UTF-8或者UTF-16操作;
  4. 接上条,从命令行窗口得到的用户输入统一是ANSI,然后用MultiByteToWideChar把ANSI转成UTF-16,【可选】再用WideCharToMultiByte再转成UTF-8;
  5. 要打开文件或者其他与系统交互怎么办,要么直接用从用户那获取的ANSI编码(const char*)或者UTF-16(std::wstring, const wchar_t*)作为参数,要么把UTF-8转成UTF-16,怎么转?再看看MultiByteToWideChar的第一个参数。
#include <Windows.h> 
#include <fstream>
#include <iostream>
@qycyfjy
qycyfjy / chipexample.py
Created September 1, 2023 11:46
PySide6 ChipExample Custom
import sys
from typing import Optional, List
from PySide6.QtCore import (
Qt,
Signal,
QPropertyAnimation,
QEasingCurve,
QRectF,
QPointF,
@qycyfjy
qycyfjy / easing_curve.py
Created September 1, 2023 11:45
PySide6 EasingCurvesDemonstration
from typing import Optional
from PySide6.QtCore import (
Qt,
Signal,
QPropertyAnimation,
QEasingCurve,
QRectF,
Property,
)
@qycyfjy
qycyfjy / number_pick_widget.py
Created September 1, 2023 11:44
PySide6 NumberPickWidget
from typing import Optional
from PySide6.QtCore import (
Qt,
Signal,
QPropertyAnimation,
QEasingCurve,
QRectF,
Property,
)
@qycyfjy
qycyfjy / ida_demangle.py
Created October 28, 2022 08:40
IDA export demangled function names
import idautils, ida_funcs
def get_function_name(ea):
origin = idaapi.get_func_name(ea)
function_name = idaapi.demangle_name(
origin,
idc.get_inf_attr(INF_SHORT_DN)
)
if function_name:
@qycyfjy
qycyfjy / leetcode1024.py
Created October 21, 2022 17:20
Leetcode 力扣 1024 马尔科夫链活动
from collections import Counter
import itertools
from typing import List
def err(msg: str):
print(msg)
exit(1)