
语法
风再起时~
这个作者很懒,什么都没留下…
展开
-
日志备份
#include <iostream>#include <fstream>#include <ctime>#include <cstring>#include <vector>#include <deque>//#include <queue>#include <thread>#include <algorithm>#include <unordered_set>#in原创 2021-05-19 17:03:24 · 399 阅读 · 0 评论 -
c++ 对象初始化时编译器的优化
#include <stdio.h> class Test{ int mi;public: Test(int i) { printf("Test(int i):%d\n", i); mi = i; } Test(const Test& t) { printf("Test(const Test& t):%d\n", t.mi); mi = t.mi; } Test原创 2021-05-17 21:12:09 · 145 阅读 · 0 评论 -
std::enable_if 的几种用法
https://yixinglu.gitlab.io/enable_if.htmlstd::enable_if 的几种用法tech 12cpp 2std::enable_if 顾名思义,满足条件时类型有效。作为选择类型的小工具,其广泛的应用在 C++ 的模板元编程(meta programming)中。它的定义也异常的简单:template <bool, typename T=void>struct enable_if {};template struct enable_if&l转载 2021-04-27 16:24:08 · 589 阅读 · 0 评论 -
Linux线程同步
https://www.linuxidc.com/Linux/2016-01/127766p5.htm转载 2021-04-14 19:36:03 · 80 阅读 · 0 评论 -
c++知识点
1.join()方法是Thread类中的一个方法,该方法的定义是等待该线程终止。其实就是join()方法将挂起调用线程的执行,直到被调用的对象完成它的执行。thread::join(): 阻塞当前线程,直至 *this 所标识的线程完成其执行。*this 所标识的线程的完成同步于从 join() 的成功返回。该方法简单暴力,主线程等待子进程期间什么都不能做。thread::join()会清理子线程相关的内存空间,此后thread object将不再和这个子线程相关了,即thread object不再joi原创 2021-03-18 12:01:43 · 95 阅读 · 0 评论 -
左值和右值
https://www.jianshu.com/p/94b0221f64a5https://www.jianshu.com/p/31cea1b6ee24原创 2020-10-16 16:17:36 · 106 阅读 · 0 评论 -
template、enable_if相关知识
1.https://www.cnblogs.com/yangxiaoping/p/8268209.html2.https://ouuan.github.io/post/c-11-enable-if-%E7%9A%84%E4%BD%BF%E7%94%A8/原创 2020-10-15 20:19:24 · 287 阅读 · 0 评论 -
正则表达式例子
#include "regex.hpp"#include <regex>#include <string>#include <vector>#include <iostream> int test_regex_match(){ std::string pattern{ "\\d{3}-\\d{8}|\\d{4}-\\d{7}" }; // fixed telephone std::regex re(pattern); std::vect转载 2020-08-03 20:56:38 · 179 阅读 · 0 评论 -
fork()、pipe()、dup2() 和 execlp() 的组合技法
void cgi_run(const char* filename){ char buffer[1024] = { 0 }; int len; int pfd[2]; int status; pid_t pid; /* create pipe */ if (pipe(pfd)<0) return -1; /* fork to execute external program or scripts */ pi转载 2020-07-21 10:02:22 · 582 阅读 · 0 评论 -
google gflags 使用方法、解析命令行参数
https://blog.youkuaiyun.com/weixin_30876945/article/details/94924058?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnP转载 2020-05-18 22:05:58 · 349 阅读 · 0 评论 -
vs配置gflags
https://blog.youkuaiyun.com/qq229873466/article/details/53571623https://blog.youkuaiyun.com/maweifei/article/details/809256681.cmake要下载msi文件,直接可以安装2.图片里的方框要全打上勾,否则编译不出想要的文件3.打完勾之后点击Open Project4.点击生成解决方案...原创 2020-05-17 13:31:53 · 559 阅读 · 0 评论 -
怎么使用std::bind
https://blog.youkuaiyun.com/u013654125/article/details/100140328https://www.jianshu.com/p/f191e88dcc80std::bind将可调用对象与其参数一起进行绑定,绑定后的结果可以使用std::function保存。std::bind主要有以下两个作用:1.将可调用对象和其参数绑定成一个防函数;2.只绑定部分参数,减少可调用对象传入的参数。《C++11中的std::function》中那段代码,std::functi转载 2020-05-13 23:15:25 · 800 阅读 · 1 评论 -
C++中typename关键字的使用方法和注意事项
https://blog.youkuaiyun.com/vanturman/article/details/80269081目录起因typename的常见用法typename的来源一些关键概念限定名和非限定名依赖名和非依赖名类作用域引入typename的真实原因一个例子问题浮现千呼万唤始出来不同编译器对错误情况的处理使用typename的规则其它例子再看常见用法参考写在结尾起因近日,看到这样一行代码:typedef typename __type_traits::has_tri转载 2020-05-13 17:30:00 · 772 阅读 · 0 评论 -
可变参数模板
https://www.cnblogs.com/qicosmos/p/4325949.html转载 2020-05-08 10:02:51 · 174 阅读 · 0 评论 -
Lambda函数
转自 https://blog.youkuaiyun.com/u010984552/article/details/53634513?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCo...转载 2020-05-07 20:37:24 · 418 阅读 · 0 评论 -
C++编程中的std::function函数封装
std::function介绍类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。通常std...转载 2020-05-07 10:25:01 · 715 阅读 · 0 评论 -
printf()函数缓存区刷新问题
转至https://blog.youkuaiyun.com/h___q/article/details/82469598某一天,我想在屏幕上的同一个位置每间隔3s输出[1,10]十个数字,就编写了如下的程序:#include<stdio.h>#include<unistd.h>int main(){ int i=1; while(i<=10) { printf...转载 2019-04-24 19:54:41 · 398 阅读 · 0 评论 -
C++输入输出流加速器,关闭同步流,ios::sync_with_stdio(false)和 cin.tie(0)
leetcode练习时,总会发现运行时间短的代码都会有类似:tatic int x=[](){ std::ios::sync_with_stdio(false); cin.tie(NULL); return 0;}();std::ios::sync_with_stdio(false);这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了...转载 2019-01-20 09:48:56 · 1790 阅读 · 1 评论 -
C++内存管理
转自 https://blog.youkuaiyun.com/caogenwangbaoqiang/article/details/79788368[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C+...转载 2019-06-25 17:25:06 · 189 阅读 · 0 评论 -
Rabin-Karp算法
Rabin-Karp算法Rabin-Karp算法用来解决一个"简单"的问题: 在一个字符串中定位子串的位置.同样的算法还有: KMP, BM. 关于他两可以再看看这位老哥写的文章:白话分析字符串匹配算法——KMP算法乍一看这个问题一个for循环就能搞定, 但Rabin-Karp这个神奇的算法能让问题解决得更高效 有趣.在了解Rabin-Karp之前,我们需要了解for暴力算法的缺点。暴力...转载 2019-06-22 19:48:31 · 1355 阅读 · 0 评论 -
STL源码剖析---空间配置器
转自https://blog.youkuaiyun.com/hackbuteer1/article/details/7724534看过STL空间配置器的源码,总结一下:1、STL空间配置器:主要分三个文件实现,stl_construct.h 这里定义了全局函数construct()和destroy(),负责对象的构造和析构。stl_alloc.h文件中定义了一、二两级配置器,彼此合作,配置器名为allo...转载 2019-07-22 15:16:06 · 112 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数argc。数组元素初值由系统自动赋予。比如:int main(int argc, char* argv[]){int ...转载 2019-04-09 21:27:10 · 2521 阅读 · 0 评论