
C++
wh1312142954
这个作者很懒,什么都没留下…
展开
-
C++11 tuple
总结一下c++11中的 tuple 容器1. tuple<int, double, string> aTuple = make_tuple(1, 2.0, "test");2. get<0>(aTuple) = 3;3. int tupleSize = tuple_size<decltype(aTuple)>::value4. tuple_ele...原创 2020-02-20 22:50:03 · 171 阅读 · 0 评论 -
C++ 可变参数列表 "..." 的使用
一、可变参数模板#include <iostream>using namespace std;template <typename... T>void func1(T... args){ cout << sizeof...(T) << endl; cout << sizeof...(args) << end...原创 2019-05-15 20:12:04 · 14980 阅读 · 1 评论 -
C++ 包装器模式 boost库实现
包装器模式,又叫装饰者模式,英文叫Decorator Pattern。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。#include <iostream>#include <boost/type_traits.hpp>using namespace std;class Mycla...原创 2019-03-31 22:20:49 · 327 阅读 · 0 评论 -
重载运算符与动态库的使用
<<只能使用友元函数的形式重载,+运算符可以友元也可以成员函数方式重载,但是参数的个数就不同了。以友元函数方式重载+运算符是两个参数,以成员函数重载只有一个参数。point.h:#include <iostream>using namespace std;class Point{public: Point(); Point(int x, ...原创 2019-02-26 17:10:19 · 370 阅读 · 0 评论 -
Linux系统调用signal(), sigaction()区别
signal在信号处理函数中不会屏蔽其他信号,会被其他信号打断:#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <wait.h>#include <memory.h>void sig_ha...原创 2019-02-25 18:48:14 · 492 阅读 · 0 评论 -
利用signal和sigaction实现信号通知避免僵尸进程
为了避免僵尸进程,我们使用信号的方式通知父进程回收子进程1、利用signal系统调用的方式:#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <wait.h>void sig_handler(int ...原创 2019-02-25 17:23:41 · 522 阅读 · 0 评论 -
修改进程名并搬移环境变量
#include <iostream>#include <string>#include <memory.h>#include <unistd.h>#include <stdlib.h>#include <sys/stat.h>using namespace std;int main(int argc, c...原创 2019-02-25 09:58:47 · 251 阅读 · 0 评论 -
C++解析Json格式
#include <iostream>#include <fstream>#include <string>#include <vector>#include <memory.h>#include <fstream>#include "json11.hpp"using namespace std;usi原创 2019-02-24 18:11:50 · 599 阅读 · 0 评论 -
单例模式以及垃圾回收
#include <iostream>#include <mutex>using namespace std; mutex *m_mutex; class Sington{private: Sington() { cout << "Sington()" << endl; stat...原创 2019-02-22 21:45:05 · 167 阅读 · 0 评论 -
c++ fstream流seekg()重定位问题
在看c++中fstream时,突然想到一个问题。当读取完整个文件之后如果再想读取一遍该如何去写?首先想到seekg()函数把读指针重定位到文件开头。但是我试了一下发现指针并没有移动,后来才搞清楚原来是当读指针指到EOF后就没办法再进行指针的控制了。#include<iostream>#include<fstream>#include<string&g...原创 2018-11-13 16:56:31 · 2229 阅读 · 1 评论 -
c++容器vector删除元素erase()与迭代器的使用
写代码时用 for 循环删除 vector 中的元素发现总是报错,后来最细看了下 erase() 方法发现 erase()方法使用后原来的迭代器失效,返回新的迭代器。正确的使用方法是:#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v = ...原创 2018-06-19 22:13:47 · 5635 阅读 · 0 评论