C++
文章平均质量分 72
Martin89
这个作者很懒,什么都没留下…
展开
-
C++ NativeEvent使用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/tpriwwq/article/details/9359791。根据工程需要,对相关方法进行了封装。//提供应用层使用的回调。转载 2024-05-21 11:43:17 · 73 阅读 · 0 评论 -
c/c++强符号与弱符号
这种弱符号与弱引用对于库来说十分有用,比如库中定义的弱符号可以被用户定义的强符号所覆盖,从而使得程序可以使用自定义版本的库函数,或者程序可以对某些扩展功能模块的引用定义为弱引用,当我们将扩展模块与程序链接在一起的时,功能模块就可以正常使用。编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号,也可以通过GCC"__attribute__((weak))"来定义任何一个强符号变为弱符号。如果一个符号在某个目标文件中是强符号,在其他文件中都是弱符号,那么选择强符号。...转载 2022-07-31 15:27:15 · 522 阅读 · 0 评论 -
c++11——可变参数模板
递归终止函数的参数可以为0,1,2或者多个(一般用到0个或1个),当参数包中剩余的参数个数等于递归终止函数的参数个数时,就调用递归终止函数,则函数终止。在c++11之前,类模板和函数模板只能含有固定数量的模板参数,c++11增加了可变模板参数特性允许模板定义中包含0到任意个模板参数。有两种展开参数包的方法(1)通过递归的模板函数来展开参数包;这种展开参数包的方式,不需要通过递归终止函数,而是直接在expand函数体内展开,printarg不是一个递归终止函数,只是一个处理参数包中每一个参数的函数。...转载 2022-07-27 10:29:42 · 1687 阅读 · 0 评论 -
正确匹配URL的正则表达式
网上流传着多种匹配URL的正则表达式版本,但我经过试验,最好用的还是从stackoverflow上查到的:(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]IP地址、前后有汉字、带参数的,都是OK的。另外几个有问题的版本:摘自微软MSDN:(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a转载 2022-05-16 14:31:34 · 946 阅读 · 0 评论 -
中文按拼音首字母排序的C++实现方案
国际化议题通常被划分为数个不同的模块,例如:数值、日期时间、货币等国际话的每个模块由locale内不同的对象处理,我们将这样一个处理某一模块的对象称为facetlocale则扮演了facet的容器。要存取locale的某个模块,可以相应的facet型别作为索引。将facet作为template参数,传递给use_facet()函数,便可以取得特定的facetstd::use_facet<std::numpunct<char> >(loc);下面大致描述了C++标准库转载 2021-11-28 11:52:03 · 816 阅读 · 0 评论 -
C++11 并发指南三(std::mutex 详解)
上一篇《C++11 并发指南二(std::thread 详解)》中主要讲到了 std::thread 的一些用法,并给出了两个小例子,本文将介绍 std::mutex 的用法。Mutex 又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 <mutex> 头文件中,所以如果你需要使用 std::mutex,就必须包含 <mutex> 头文件。...转载 2018-07-24 09:43:01 · 546 阅读 · 0 评论 -
C++11 并发指南二(std::thread 详解)
上一篇博客《C++11 并发指南一(C++11 多线程初探)》中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用法。std::thread 在 <thread> 头文件中声明,因此使用 std::thread 时需要包含 <thread> 头文件。std::thread 构造defaul...转载 2018-07-24 09:38:29 · 1258 阅读 · 0 评论 -
用C++11的std::async代替线程的创建
c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的:void f(int n);std::thread t(f, n + 1);t.join(); 但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如我希望获取线程函数的返回结果的时候,我就不能直接通过thread.join()得到结果,这时就必须定义一个变量,在线程函数中去给这个变量赋值,然后jo...转载 2018-07-25 09:14:59 · 386 阅读 · 0 评论 -
c++11中的tuple(元组)
转自:http://www.cnblogs.com/qicosmos/p/3318070.html 这次要讲的内容是:c++11中的tuple(元组)。tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多细节,要揭开它神秘的面纱时又比较困难。 tuple是一个固定大小的不同类型值的集合,是...转载 2018-02-28 14:37:51 · 11229 阅读 · 0 评论 -
std::bind与std::function详解
std::bind1、定义bind(F f, T1 t1, T2 t2, ..., TN tN);具体为:bind(&要调用的函数,&对象, 要调用函数的参数1,要调用函数的参数2...,_1(bind函数的参数1),_2(bind函数的参数2)...)注:如果bind的是一个非静态成员函数,第二个参数一定是一个该成员的一个指针,后面才是正常的参数。2、bi...转载 2018-02-27 14:30:37 · 583 阅读 · 0 评论 -
匿名函数(lambda)详解 C++
匿名函数是许多编程语言都支持的概念,有函数体,没有函数名,c++引入了lambda 函数,你可以在你的源码中内联一个lambda函数,这就使得创建快速的,一次性的函数变得简单了。 #include <algorithm>#include <cmath>void abssort(float* x, unsigned N) { std::sort...转载 2018-03-22 10:53:47 · 399 阅读 · 0 评论 -
c++11 chrono全面解析(最高可达纳秒级别的精度)
chrono是c++ 11中的时间库,提供计时,时钟等功能。学习chrono,关键是理解里面时间段(Durations)、时间点(Time points)的概念。1.精度:时钟节拍(时间精度):template <intmax_t N, intmax_t D = 1> class ratio;其中N表示分子,D表示分母,默认用秒表示的时间单位。N对...转载 2019-06-20 19:56:08 · 2230 阅读 · 0 评论 -
C++语言ctime库
1. 类型clock_t: 是个long型,用来记录一段时间内的时钟计时单元数,即CPU的运行单元时间。size_t: 标准C库中定义的,应为unsigned int,在64位系统中为long unsigned int。time_t: 从1970年1月1日0时0分0秒到该时间点所经过的秒数。struct tm { int tm_sec; /* 秒 – 取值区间为...转载 2015-01-25 15:09:31 · 912 阅读 · 0 评论 -
stl string常用函数
原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52f7string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化...转载 2015-01-26 11:38:18 · 315 阅读 · 0 评论 -
STL Algorithm 整理
非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 find() 在序列中找出符合某谓词的第一个元素 find_if() 在序列中找出一子序列的最后一次出现的位置 find_end() 在序列中找出第一次出现指定值集中之值的位置 find_first_o...转载 2015-01-30 14:25:24 · 290 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容: #include <fstream> ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中...转载 2015-01-28 14:04:44 · 397 阅读 · 0 评论 -
引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完转载 2015-01-25 13:00:20 · 233 阅读 · 0 评论 -
友元函数
友元函数(friend function)1. 什么是友元函数? 一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员2. 友元函数的用处体现在哪里? 2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类 2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑关系转载 2015-01-25 12:58:50 · 505 阅读 · 0 评论 -
C++中struct与class的区别
1。字面上的区别 在字面上struct是structure的缩写,通常叫做“结构体”,在C语言里用于将多种数据、多个变量组织在一起,便于表达比较复杂的数据类型,在C++中为了兼容C语言保留了该关键字,并且保留了C语言中的所有功能。 而class,则称作“类”,是C++新增来支持面向对象思想概念中“类”的概念的一个关键词,并且比struct具有了更强大的功能,不仅可以像C语言中的st转载 2015-01-25 12:31:44 · 269 阅读 · 0 评论 -
深入浅出类的赋值、拷贝
classCExample{public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){delete pBuffer;} void Init(int n){ pBuffer=new char[n]; nSize=n;}private: char *pBuffer; //类的对象中包含指针,指向动态分配的内存资源 in转载 2015-01-25 12:33:48 · 361 阅读 · 0 评论 -
C++对象的内存布局_
07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便和简单。不想,这篇文章成为了打开C++对象模型内存布局的一个引子,引发了大家对C++转载 2015-01-25 12:30:27 · 236 阅读 · 0 评论 -
delete this--对象请求自杀
第一次见delete this的时候,没觉得这是一项会有什么特殊作用的技术,因此也就没有特别关注。 昨日在sourcemaking.com上看state模式之c++实现的时候,看到它在状态转换的时候使用了delete this,感觉似乎还不错。 作为一种“禁术”,使用的时候必须要相当小心才行,《C++ FAQ》里提到所谓“小心”至少包括以下几个方面:this对象转载 2015-01-25 12:56:15 · 329 阅读 · 0 评论 -
c++输出函数调用堆栈
转:http://www.codeproject.com/Articles/11132/Walking-the-callstack转:http://bbs.pediy.com/archive/index.php?t-157116.html很早以前翻译的一篇文章,今天用到,又温习了一下,从博客转过来和大家分享。作者:Jochen Kalmbach翻译:Hefe原文出处:www.codeproject...转载 2017-12-19 17:55:12 · 970 阅读 · 0 评论 -
深入了解字符集和编码
在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主转载 2015-01-25 12:35:18 · 265 阅读 · 0 评论 -
浅谈正则表达式(Regular Expression)
一、什么是正则表达式?简单的说:正则表达式(Regular Expression)是一种处理字符串匹配的语言;正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,对匹配到的子串进行“取出”或“替换”操作。二、正则表达式的应用正则表达式在实际的开发过程中非常实用,能够快速解决一些复杂的字符串处理问题,下面我对正则表达式的应用做一些简单分类:转载 2015-01-07 09:17:43 · 974 阅读 · 0 评论