- 博客(120)
- 资源 (16)
- 问答 (2)
- 收藏
- 关注
原创 windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器
配置环境变量,也就是把perl和nasm的bin路径添加到环境变量path中。
2024-12-17 20:11:47
510
原创 windows curl 之 invalid character ‘\‘‘ looking for beginning of value
windows terminal 执行 curl 报 invalid character '\" looking for beginning of value
2022-07-27 22:43:49
2571
1
原创 git 强制提交
git add .git commit -m "your comment"git push -u origin master -f
2022-03-22 15:30:37
3357
原创 接入阿里kafka无法查到符号
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RdKafka::err2str(enum RdKafka::ErrorCode)" (__imp_?err2str@RdKafka@@YA?AV?$basic_string@DU?$ch
2022-03-08 17:14:30
1894
原创 Lua 表随机删除值
同样一个事情,处理流程不同,会造成效率上的极大差异先看一段代码local t = {}function CreateTable() for i=1,2000000 do table.insert(t,i) end --然后再对t进行打乱,前面的博客也有讲述endCreateTable()--每次从t中获取一个随机值并移除,此处直接从t中循环操作1000000次--每次删除第一个数据,效率极低,耗时几十秒!!!!!!!!local time1 = os.time()for i
2022-02-22 19:22:11
265
原创 lua attempt to index field ? a nil
不详细说,看例子local t = {}print(t[2].a) --t[2]本身是nil,所以是nil.alua: /usercode/file.lua:3: attempt to index field '?' (a nil value)stack traceback: /usercode/file.lua:3: in main chunk [C]: in ?
2021-12-18 10:36:54
8564
原创 C++ std::map for 循环效率
写法1:常规迭代遍历for (auto it = m_mapUser.begin(); it != m_mapUser.end(); ++it){ //todo}//评价:很常用的写法,效率也很高写法2:auto遍历for (auto it : m_mapUser){ //todo}//评价:写法简单,效率低,map数据量很小的时候适用,数据量大坚决不能这么写//测试数据10w条记录,遍历一次需要24s,100w条需要270s写法3:auto遍历(改进)for (au
2021-12-07 11:08:08
3522
4
原创 初学 python 基础语法4
类型是对象,变量无类型?a="xyz"# a是变量,没有类型,只是对象的引用;# "xyz"是String类型,也是"xyz"字符串本身有类型;函数def fun(str): print str return strdef fun2(str="abc): # 默认参数 print str return strdef fun3(str, *varparam): # 最后一个变量带 * 则包含表示所有后面的变量 print str for v in varparam: pri
2021-11-23 11:36:46
88
原创 初学 python 基础语法3
外层加引号(repr)/去掉外层引号(eval)s = 'abdcf'print eval('['+','.join([repr(i) for i in s])+']')['a', 'b', 'd', 'c', 'f']序列与字符串互相转换(join)join:字符串序列使用指定字符拼接,被拼接的序列必须是字符串>>> str1='()'>>>> str2=['ab','c','d'] # 可以是列表>>> str1.join(
2021-11-22 19:37:55
546
原创 初学 Python 之 八皇后问题
首先得承认,还没看懂这段代码,先记录下,等看完基础语法,再来看这段代码:#* queen problem with recurisonBOARD_SIZE = 8def under_attack(col, queens): left = right = col for r, c in reversed(queens): #左右有冲突的位置的列号 left, right = left - 1, right + 1 if c in (left, col, ri
2021-11-22 14:53:08
347
原创 初学 python 基础语法2
去除 空格(strip / rstrip / lstrip)strip:去除左右空格,也就是头部和尾部空格都去掉;rstrip:去除右侧空格,也就是尾部;(R:right 右边)lstrip:去除左侧空格,也就是头部;(L:left 左边)#!/usr/bin/env python#coding=utf-8x = ' aaa 'print len(x) # 输出 12print len(x.rstrip()) # 输出 6 因为尾部空格被去除print len(x) # 此
2021-11-21 22:14:41
370
原创 初学 python 与其他语言不同的规则
字符可乘这个挺有意思的,第一次碰到这种用法,字符也可以用乘法,只不过是代表字符重复:#!/usr/bin/env pythonprint('='*5)print("0"*3)print('8899'*4)print("9898"*3)print '''helloworld'''*3'''输出结果:=====0008899889988998899989898989898helloworldhelloworldhelloworld'''...
2021-11-19 09:27:40
454
原创 初学 python 基础语法
python查看帮助$ python -hpython 标识符1.由 字母,数字,下划线 组成;2.标识符 只能以 字母,下划线 开头,不能以数字开头;3.标识符 区分大小写;4.下划线开头的标识符特殊意义:单下划线(例如 _foo)代表不能直接访问的类属性,需通过接口访问,双下划线(例如:__foo)代表类的私有成员,双下划线开头+双下划线结尾(例如:__foo__)代表python里的特殊方法专用的标识5.同一行可写多条语句,用分号隔开 例如:print(“1”);print(“234”)
2021-11-18 19:27:20
754
原创 C++ 获取自定义模板的对象名称
不解释,看实例正常使用宏定义时,要获取符号名称,是使用#把名称字符串化,但这种方式在模板中不好使,需要更底层提供的运算符操作typeid。template<typename T>class CTest {public: CTest() { sName = typeid(T).name(); } std::string GetName() { return sName; }private: std::string sName;};int main() { C
2021-10-30 23:09:47
1051
原创 遍历查找最大最小值
题目很简单,只要会一些变成功底的,都能写出来,比如以下代码//简单示例,不追求绝对的可用//示例1void Find(std::vector<int> aData, int& minValue,int& maxValue){ if(aData.empty()) return; minValue=aData[0]; maxValue=aData[0]; for(size_t i = 0; i<aData.size();++i) { if(minVal
2021-10-13 10:14:46
290
原创 Go 之 快排
基础思维:以第一个元素为基准,func quickSortPart(vData []int, left, right int) { if left >= right { return } i,j:=left,right key:=vData[left] p:=left for { if i > j { break } for j >= p && vData[j] >= key { j-- } if j >
2021-08-28 17:48:17
91
原创 Go 之 冒泡
作为C++开发人员,冒泡算法还是很简单,换个语言,大致还是一样的;还是啰嗦下逻辑思维:假设原数据:[2 1 4 3 5 6 0]以第一个元素为准,找出剩余元素中,比第一个元素小的,交替位置: [0 2 4 3 5 6 1]以第二个元素为准,找出剩余元素中,比第二个元素小的,交替位置:[0 1 4 3 5 6 2]以第三个元素为准,找出剩余元素中,比第三个元素小的,交替位置:[0 1 2 4 5 6 3]以第四个元素为准,找出剩余元素中,比第四个元素小的,交替位置:[0 1 2 3 5 6 4]
2021-08-28 14:50:56
132
原创 C++ 之 # 与 ##
先看实例(示例不追求编译合法性,只表达某些用法含义)class CTest{}void main(){ std::string s1 = #CTest; // s1="CTest" my##CTest; // 结果是myCTest}很明显,#是把符号转变成字符串;##是连接常用于宏定义结合以下例子,应该很容易理解:#define DEFAULT_FUNC(__Cls) std::string GetClassName(){ return #__Cls; }#define DEF
2021-08-26 11:07:43
172
原创 go 之 浮点数相等判断
因为浮点数不是一种精确的表达方式,所以像整型那样直接用==来判断两个浮点数是否相等是不可行的,这可能会导致不稳定的结果。下面是一种推荐的替代方案:import "math" // p为用户自定义的比较精度,比如0.00001 func IsEqual(f1, f2, p float64) bool { return math.Fdim(f1, f2) < p }...
2021-08-23 16:20:53
956
原创 IOCP IPV6 支持
重点是 sockaddr_storage 结构;地址结构调整:sockaddr_storage m_sockaddr;可以对照调用接口名称,对应修改:1.AcceptExif (!AcceptEx(m_pListenSocket->GetSocket(), m_sSocket, m_szBuffRecv, 0, sizeof(sockaddr_storage), sizeof(sockaddr_storage), &dwRecv, &m_olRecv)) //if (!Ac
2021-08-12 11:17:37
269
原创 docker Ports are not available
docker 启动mysql 容器出错Ports are not available: listen tcp 0.0.0.0:3306可能还有mysql服务在运行,端口被占用,把端口释放,最直接的就是找到正在运行的mysql服务,并停止,或者换个端口,不要用3306
2021-07-26 16:11:17
1002
原创 原生字符串字面量
提前解释内容:u8前缀:utf8存储格式;比如:u8"abc"字符串u前缀:utf16存储格式;比如:u"abc"字符串U前缀:utf32存储格式;比如:U"abc"字符串原生字符串字面量 关键字:R//举例,比较典型的,符合大众认知的转义符 \n 换行cout << R"(abc\nabc)";// 输出内容是 abc\nabcprintf(R"(abc\n111)");// 输出内容是abc\n111//输出结果是//abc\n//123cout<<R"(
2021-07-14 17:43:05
175
原创 C++11之 自定义字节对齐方式(扩展字节对齐方式)
操作符:alignof(XXXX) 输出对齐方式描述符:alignas(xxxx) 自定义对齐方式(xxxx必须是2的幂,即1,2,4,8,16,32,…,2^n)1,2,4,8 通常称为基本对齐值,或标准对齐16,32,64,… 这类大于8的对齐方式,称为扩展对齐值自定义对齐方式也是受到平台限制的,并非可以随心所欲的定义任何值如果定义的扩展对齐值超过平台最大限制值,则可能出现编译期错误,甚至运行时未知内存异常传统的对齐方式传统C++对齐方式,都是默认的1字节,2字节,4字节,8字节对齐C+
2021-07-13 17:50:57
883
原创 编译器生成类默认构造和禁用默认构造
直接看实例,关键字 default 和 deleteclass A{public: A() = default;// 告诉编译器,即便有自定义构造,也要生成默认构造 A(int n){} //自定义构造 A(const A&) = delete;// 禁用拷贝构造protected:private:};...
2021-07-08 17:21:05
292
原创 线程独立局部存储
所谓线程独立局部存储,说白了,就是不同线程之间的变量独占内存空间,不共享,即便是全局变量关键字 thread_local,不必纠结怎么实现的,会用就行#include <windows.h>#include <cstdio>#include <iostream>#include <thread>#include <atomic>using namespace std;int thread_local g_nCount = 0
2021-07-07 17:17:54
347
原创 C++11 thread
包含头文件#include < thread >用法很简单,直接看例子:#include <thread>void func0(int nArg1,int nArg2) { cout << nArg1 << nArg2 << endl;}void func1() { // to do}int main() { thread t0(func0, 1, 2);//创建线程 thread t1(func1);//创建线程
2021-07-02 16:22:35
96
原创 变长模板实现完美转发
#include <cstdio>#include <iostream>using namespace std;struct A { A() {} A(const A& a) { cout << "COPY Constructed " << __FUNCTION__ << endl; } A(A&& a) { cout << "Move Constructed " << __FUNCT
2021-06-23 17:20:07
138
原创 以模板作为模板参数(嵌套模板)
#include <cstdio>#include <tuple>using namespace std;template<typename A,typename B> struct S{};template< template<typename...>typename T,typename... TArgs //这边很难理解,需要看tuple原型,辅助理解 ,template<typename...>typename U
2021-06-23 16:45:33
392
assistx10.9.2223.zip
2019-08-05
vcredist_x64_x86
2019-04-04
cocos2dx_android环境搭建和环境变量配置
2018-01-03
C++ builder Package,BPL创建和调用,接口导出
2014-04-03
BCB DLL动态库创建,接口导出,VCL调用DLL
2014-04-03
vs 如何附加pdb链接目录
2022-05-20
SQLFetch SQLRowCount 获取的结果记录数不一致
2021-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人