C/C++
nope啊
0000
展开
-
c++ win下使用sscanf / swscanf实现 的 时间转时间戳
time_t TransTimeStringToStamp(const stdtstring& strTimeString){ //2020/11/10:16:46:47.000 struct tm tm; memset(&tm, 0, sizeof(tm)); swscanf(strTimeString.c_str(), L"%d/%d/%d:%d:%d:%d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &am.原创 2020-12-09 20:04:35 · 227 阅读 · 0 评论 -
wofstream 要输出中文到文件中,需要将全局locale设为本地语言
//wofstream 要输出中文到文件中,需要将全局locale设为本地语言 locale &loc = locale::global(locale(locale( ), "", LC_CTYPE)); std::wofstream ofs; ofs.open(strDataPath.c_str( ), std::ios::out | std::ios::app); if (ofs.is_open( )) { ofs.write(strRe.原创 2020-09-10 13:33:35 · 487 阅读 · 0 评论 -
关于vector动态增加容量后的注意事项
vector的动态增加大小, 不是在 原空间 之后续接新空间(因为无法保证原空间之后尚有可供配置的空间),而是一般以原大小的两倍 另外配置 一块较大空间,然后将原内容拷贝过来,然后才开始在原内容之后构造新元素,并释放原空间;因此,对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。下面代码中的it指向vector的begin():在执行push...原创 2020-03-23 10:00:33 · 718 阅读 · 0 评论 -
设计模式之单例模式(Singleton)C++实现
单例模式--作用: 确保一个类中只有一个实例,并提供全局访问点;特点:1. 构造函数 私有化,因此不能直接定义一个该类的对象: private: Csingle(){};2. 定义一个类型为 该类本身的指针 的一个静态成员 : static CSingleton* m_singleInstance;3. 定义一个返回类型为 该类本身的指针 的一个静态成员函数:...原创 2020-01-08 12:51:01 · 237 阅读 · 0 评论 -
c++ mutable
用mutable修饰的类成员变量, 表示在 const成员函数中, mutable修饰的成员变量依然 可以改变;原创 2020-01-08 17:40:00 · 99 阅读 · 0 评论 -
Head First 设计模式-C++实现---观察者模式
1.意图观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2. 别名依赖(Dependents),发布-订阅(Publish/Subscribe)模式;3.动机:降低各类紧密耦合;Head First设计模式上的观察者模式使用java语言实现,这里用C++语言来实现:Su...原创 2019-12-12 22:09:09 · 440 阅读 · 0 评论 -
大小端字节序的记忆方法
/*对于 0x1234, 阅读顺序是 从左往右, */union MyUnion{ int a; char b;};int endiam(){ MyUnion mu; mu.a = 1; return mu.b;//大端返回0,小段返回1}int main(){ std::cout << endiam() << std...原创 2019-11-24 00:32:34 · 424 阅读 · 0 评论 -
const 加 pointer,常量指针与指针常量的区别
int * const p 和 const int * p;这两者哪个是常量指针哪个是指针常量,实在是容易搞混; 按照英文原文,感觉好理解点: int * const p ---> const pointer; 称为常量指针,应该没问题;或者就按英文来记; const int * p ---> pointer to const; 称为 指向常量的指针, 虽然字数多,可...原创 2019-11-22 18:51:17 · 185 阅读 · 0 评论 -
线程同步机制 之 条件变量(pthread_cond_t)
1.条件变量(pthread_cond_t)是 线程可用的一种 同步机制;2.条件变量 与 互斥量(pthread_mutex_t) 一起使用时,允许线程 以 无竞争的方式等待特定的条件发生;3.条件本身是由互斥量保护,线程在改变条件状态之前必须首先锁住互斥量;#include <pthread.h> //静态初始化 pthread_co...原创 2019-09-20 20:14:55 · 1510 阅读 · 0 评论 -
vs2017快捷键
VS2017常用快快捷键VS中代码对齐等快捷键 在VS中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐。 注意:要先按下Ctrl和K,再按下F,因为Ctrl+F是查找的快捷键。 也可以先按下Ctrl+K,再按下Ctrl+F。 另外,可以在“工具->选项->文本编辑器->C/C+...转载 2019-07-10 14:48:12 · 221 阅读 · 0 评论 -
隐式接口和编译器多态
显式接口,运行期多态(面向对象编程解决问题的方式)显式接口:我们知道它是什么样子,在源码中明确可见。虚函数:提供运行期多态支持,根据动态类型决定调用函数。模板和泛型编程的重点是隐式接口和编译期多态看下面这个模板函数[cpp] emplate<typename T>void DoSometing(T& w){ if(w.size()>10&am...转载 2019-05-30 14:28:45 · 169 阅读 · 0 评论 -
保存图片,自动删除图片及目录
CString CVisionSetting::GetDirectory(){ char szPath[255]; memset(szPath, 0, 255); GetDirectory(szPath); //::GetCurrentDirectory(255, szPath); return CString(szPath);}bool CVisionSetting::IsD...原创 2019-05-27 14:06:49 · 827 阅读 · 0 评论 -
运行时类型识别(run-time type identification, RTTI) : typeid && dynamic_cast
RTTI功能由两个函数实现:typeid 运算符: 用于返回表达式的类型;dynamic_cast运算符: 用于将基类的指针或引用 安全的转换成派生类的指针或引用.==>一般 将 基类转换成派生类, 并调用 基类中没有 而 派生类中有 的成员函数, 这个成员函数必须是 virtual函数;C++ Primer 有详细讲解。...翻译 2019-04-30 14:44:14 · 272 阅读 · 0 评论 -
C++11中智能指针
转载自: https://www.cnblogs.com/wxquare/p/4759020.html1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二...转载 2019-04-24 14:32:08 · 137 阅读 · 0 评论 -
C++随笔之boolalpha
boolalpha是头文件#include <iostream>中的一个函数,是把bool型变量按照true或false的形式打印出来: 如: 输出:原创 2018-05-17 08:33:01 · 374 阅读 · 0 评论 -
C函数 getch()、getche()和getchar()的区别
转载自 : http://blog.51cto.com/qiyanfeng/106682getchar() 头文件:stdio.h 功 能:从I/O流中读字符 原 型:int getchar(void);getch() 头文件:conio.h 功 能:从控制台读取一个字符,但不显示在屏幕上 原 型:int getch(void) 返回值:读取的字符getche() ...转载 2018-05-17 11:38:21 · 267 阅读 · 0 评论 -
C/C++ 随笔
201805171. C库函数 toupper() C 库函数 int toupper(int c) 把小写字母转换为大写字母。原创 2018-05-17 11:43:11 · 127 阅读 · 0 评论 -
C++ STL map
使用map 的情况: 当需要快速根据 key 来获取 value时,使用map,不需要遍历;转载自: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.htmlC++中的STL中map用法详解Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由...转载 2018-05-22 20:04:23 · 118 阅读 · 0 评论 -
wcstol函数
long int wcstol (const wchar_t* str, wchar_t** endptr, int base);意义: 将宽字节的C字符串,根据给定的基数base(进制),转换为 长整型 数字;返回值 : 函数得到的长整型数字;const wchar_t* str: 输入的C字符串;wchar_t** endptr: 指向提取到的数字后的字符;如:str = “1234 5...原创 2018-05-23 14:31:36 · 4362 阅读 · 0 评论 -
CMarkUp 拾遗 之 ResetMainPos()
当调用ResetMainPos()后,当前指向从属性为 name=camera的path的后面,重新指向属性为name=flow的path,所以,在调用ResetMainPos后FindElem(_T("path"))返回true;原创 2018-07-02 14:35:48 · 973 阅读 · 1 评论 -
HALCON setsystem 算子中参数的含义之 flush_graphic
首先是halcon上的文档解释: 'flush_graphic':After each HALCON operation which creates a graphic output, a flush operation will be executed in order to display the data immediately on screen. This is not necess...原创 2018-07-02 15:55:29 · 3656 阅读 · 0 评论 -
C++IO库 - 随便记点什么
每个输出流管理一个缓冲区,用来保存程序读写的数据;导致缓冲刷新的原因(数据真正写到输出设备或文件):1.程序正常结束,作为main函数的return操作的一部分,缓冲刷新被执行;2.缓冲区慢时,需要刷新缓冲,然后新的数据才可以继续写入缓冲区;3.使用操作符如: endl, ends, flush来显示刷新缓冲区;4.在每个输出操作后,可以用操作符unitbuf设置流的内部状态,来清空缓冲区。默认情...原创 2018-07-14 15:14:19 · 172 阅读 · 0 评论 -
C++ 获取一个点相对于正x轴的角度
#define EPS 0.0000001#define PI 3.14159265358979323846struct pt{ double x; double y;};//获取所在象限int GetQuadrantForPoint(pt p){ if(p.x > 0 && p.y > 0) //...原创 2018-08-06 09:15:16 · 1267 阅读 · 0 评论 -
关联容器map和无序关联容器unordered_map
两个示例代码,第一个test函数是map,第二个是unorder_maptest()的结果:unorderTest()的结果:可以看到,关联容器map是按字母顺序输出的,而无序关联容器unordered_map则是不太可能按字母顺序输出的,但对于相同的输入,其输出还是相同的。 无序关联容器unordered_map的基本的 插入、查找等操作跟有序关联容器map一样。...原创 2018-08-11 17:25:25 · 629 阅读 · 0 评论 -
关联容器map的操作
添加元素: insert进行Insert操作时,元素类型是pair。4种插入操作: 输出: 删除元素: erase 修改,map的下标操作访问元素: find 和 count对map使用find代替下标操作的情况:使用不存在的关键字作为下标,会插入一个新元素,其关键字为给定关键字,值为0;如果只想知道给定关键字是否存在,而不想改变...原创 2018-08-13 15:37:18 · 250 阅读 · 0 评论 -
windows connect 函数
int connect( __in SOCKET s, __in const struct sockaddr *name, __in int namelen );说明:第一个参数是套接字,第二个是包含地址信息的sockaddr_in结构体,第三个 是sockaddr_in结构体长度;返回值: 正常返回0, 错误返回SOCKET_ERR,也就是-1, 可用WSAGetlastErr...原创 2018-12-19 21:06:13 · 3575 阅读 · 0 评论 -
SOCKET编程相关的 htonl()等函数
为什么需要htons(), ntohl(), ntohs(),htons() 函数: 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long" ...转载 2018-12-19 21:10:14 · 1520 阅读 · 0 评论 -
Pointer to Implementation (PIMPL)
1.通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。2.优点:1)降低模块的耦合。因为隐藏了类的实现,被隐藏的类相当于原类不可见,对隐藏的类进行修改,不需要重新编译原类。2)降低编译依赖,提高编译速度。指针的大小为4(32位)或8(64位),X发生变化,指针大小却不会改变,文件c.h也不需要重编译。3)接口与实现分离,提高接口的稳定性。 1、通过指针...转载 2019-02-15 11:46:52 · 323 阅读 · 1 评论