![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
Drunkenman_
这个作者很懒,什么都没留下…
展开
-
0_7 标准I/O、文件I/O
C#include "hjcommon.hpp"#include "unistd.h"HJ_NS_BEGINbool isFileExists(const char *path){ r原创 2020-05-17 23:15:24 · 433 阅读 · 0 评论 -
2_6_12 recursive_mutex、timed_mutex、recursive_timed_mutex、随机数、系统时间、线程池
6_12_recursive_timed_mutex.cpp#include <hjcommon.hpp>#include <list>#include <mutex>using namespace std;HJ_NS_USINGclass D{public: void write()原创 2020-05-17 23:19:31 · 105 阅读 · 0 评论 -
2_7 operator new、operator delete、内存池、嵌入式指针
7_2_operator_new_delete.cpp#include "hjcommon.hpp"class A{public: int m_num = 0; A() { cout << "A." << endl; } ~A() { cout &原创 2020-05-17 23:19:44 · 69 阅读 · 0 评论 -
2_8_4 分配器、迭代器、仿函数
8_4_分配器.cpp#include "hjcommon.hpp"int main_2_8_4(int argc, char *argv[]){ allocator<int> alloc; // 分配器 int *pi = alloc.allocate(3); // 分配内存 *pi = 1; pi++; *pi = 2; pi++; *pi = 3; a原创 2020-05-17 23:20:09 · 72 阅读 · 0 评论 -
2_8_6 for_each、find、sort、count
8_6_for_each_find_sort_count.cpp#include "hjcommon.hpp"#include <algorithm> // STL算法需要static void forEach(int element){ cout << element <&a原创 2020-05-17 23:20:21 · 67 阅读 · 0 评论 -
2_9_3 boost库、模板类型参数类型推断、auto类型推断、decltype类型推断
9_3_boost_类型推断.cpp#include "hjcommon.hpp"#include "boost/type_index.hpp"template<typename T, typename Q>static void aFunc(T &tvar, const Q &原创 2020-05-17 23:20:34 · 149 阅读 · 0 评论 -
2_9_2 万能引用、引用折叠、完美转发、forward
9_2_universal_reference.cpp#include "hjcommon.hpp"static void bcd(int &&num) {}template<typename T>static void cde(const T &&t原创 2020-05-17 23:20:46 · 96 阅读 · 0 评论 -
2_9_1 function、bind、lambda
9_1_function.cpp#include "hjcommon.hpp"#include <functional>static int abc() {}static int abc(int num){ cout << "abc." &am原创 2020-05-17 23:20:56 · 73 阅读 · 0 评论 -
2_9_10 可变参函数、initializer_list、萃取
9_10_可变参函数_initializer_list.cpp#include "hjcommon.hpp"class A{public: A() { cout << "A no arg." << endl; } A(const A &原创 2020-05-17 23:21:05 · 108 阅读 · 0 评论 -
3_2 this地址调整、编译器优化
2_1_this地址调整_编译器优化.cpp#include <iostream>using namespace std;class AAA{public: const int m_num = 11; AAA() { cout << "no arg." <&原创 2020-05-17 23:21:15 · 95 阅读 · 0 评论 -
3_3 虚函数表
3_2_虚函数表.cpp#include <iostream>using namespace std;class AC{public: AC() { cout << "AC no arg." <&a原创 2020-05-17 23:21:24 · 76 阅读 · 0 评论 -
3_4 数据成员绑定、类成员偏移地址、虚基类表
4_1_数据成员绑定.cpp#include <iostream>using namespace std;static string var = "";using T341 = string;class A341{public: int func() { return var; // 会使用类内部的变量,不是全局原创 2020-05-17 23:21:35 · 97 阅读 · 0 评论 -
3_5 虚函数、性能
5_2_虚函数.cpp#include <iostream>#include <memory>using namespace std;class A352{public: int a = 0; A352() {} virtual void func() { } void go() { cout <&a原创 2020-05-17 23:21:46 · 120 阅读 · 0 评论 -
3_6 构造中调虚函数
6_1_构造中调虚函数.cpp#include <iostream>using namespace std;class A361{public: A361() { func(); } // 构造函数中调用虚函数是直接调用A361的func(),不会走虚函数表 virtual ~A361() {} virtual void func() // 非构造函数,若此函数在A3...原创 2020-05-17 23:21:56 · 73 阅读 · 0 评论 -
3_7 类模板的静态成员、不能被继承的类
7_1_类模板的静态成员.cpp#include <iostream>using namespace std;// 模板类中的静态成员声明与定义template<class T>class C371{public: static int m_snum; static int func();};template<c原创 2020-05-17 23:22:09 · 95 阅读 · 0 评论 -
(一) base
#include <jni.h>#include <stdlib.h>#include "hjcommon.hpp"JNIEXPORT void JNICALL Java_hank原创 2020-05-17 23:24:35 · 218 阅读 · 0 评论 -
2_6_9 async、future、packaged_task、promise、shared_future、atomic
6_9_async_future_packaged_task_pro.cpp#include "hjcommon.hpp"#include <future>using namespace std;HJ_NS_USINGstatic int aFunc(int num){ cout << &原创 2020-05-17 23:19:19 · 105 阅读 · 0 评论 -
2_6_7 单例、call_once、condition_variable、wait、notify_one、notify_all、生产者消费者
6_7_单例_call_once.cpp#include "hjcommon.hpp"#include <mutex>using namespace std;HJ_NS_USINGclass Single // 单例类{private: Single() {} class GC // 内部嵌套类,析沟中释放单例对象 { public: ~G原创 2020-05-17 23:19:08 · 114 阅读 · 0 评论 -
CMakeList.txt、build.sh
CMakeList.txtcmake_minimum_required(VERSION 3.4.1)project (cpp)set(LOCAL_PATH ${CMAKE_CURRENT_SOURCE_DIR})message("LOCAL_PATH : ${LOCAL_PATH}")set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall -W原创 2020-05-17 23:14:53 · 494 阅读 · 0 评论 -
2_2_2 stdinout、c++11、inline
stdinout.cpp#include "hjcommon.hpp"#include "hjlog.hpp"#include &l原创 2020-05-17 23:15:37 · 127 阅读 · 0 评论 -
2_2_7 string、vector、iterator、类型转换
string#include "hjcommon.hpp"using namespace std;HJ_NS_USINGint main_2_2_7(int argc, char *argv[]){ // std::string String s1 = "some"; /原创 2020-05-17 23:15:51 · 344 阅读 · 0 评论 -
2_3_2 class、inline、const、mutable、static、=default、=delete
#include "hjcommon.hpp"using namespace std;HJ_NS_USINGclass Some{public: Some(int a) { cout << "one&amp原创 2020-05-17 23:16:04 · 137 阅读 · 0 评论 -
2_3_7 using、virtual、override、final、friend、RTTI、dynamic_cast、typeid、type_info
using#include "hjcommon.hpp"using namespace std;HJ_NS_USINGclass Parent{public: void say() { cout << &原创 2020-05-17 23:16:22 · 143 阅读 · 1 评论 -
2_3_12 左值、右值、左值引用、右值引用、std::move
#include "hjcommon.hpp"using namespace std;HJ_NS_USINGint main(int argc, char *argvp[]){ // 左值:能用在赋值语句等号左边的东西,它能够代表一个地址。 一个左值可能既有左值的属性还有右值的属性 // 右值:不能作为左值的值就是右值 // c++的一条表达式结果要么是左值要么是右值 // 左...原创 2020-05-17 23:16:33 · 110 阅读 · 0 评论 -
2_3_13 临时对象、类外运算符重载、对象移动、noexcept
临时对象、类外运算符重载#include "hjcommon.hpp"using namespace std;HJ_NS_USINGclass A{public: int num = 0;// A(int a) : num(a) = default; // default不可以这么用 A(int a) { cout <&原创 2020-05-17 23:16:44 · 118 阅读 · 0 评论 -
2_3_15 虚基类、虚继承
#include "hjcommon.hpp"using namespace std;HJ_NS_USING;class Grand // 子类虚继承后,此类就称为虚基类{public: int m_grandNum; Grand(int num) : m_grandNum(num) { cout << "grand&q原创 2020-05-17 23:17:24 · 80 阅读 · 0 评论 -
2_3_16 类成员指针、类型转换运算符
类成员指针#include "hjcommon.hpp"using namespace std;HJ_NS_USINGclass A{public: int m_num = 0; static int s_num; void normalFunc(int num) { cout << "normalFunc.&原创 2020-05-17 23:17:37 · 148 阅读 · 0 评论 -
2_4_1 函数模板、类模板
4_1_函数模板.cpp#include "hjcommon.hpp"using namespace std;HJ_NS_USINGHJ_NS_BEGIN// 类型参数的函数模板,类型 T 可以用任意字符或字符串代替template<typename T> // 可以使用typename或class,甚原创 2020-05-17 23:17:50 · 90 阅读 · 0 评论 -
2_4_6 模板特化、可变参模板、模板模板参数
4_6_模板特化.cpp#include "hjcommon.hpp"using namespace std;HJ_NS_USING// 类模板特化,特化的模板类中重写的函数会覆盖泛化模板中的// 泛化template<typename A, typename B, typename C>class Demo // demo模板类原创 2020-05-17 23:18:17 · 236 阅读 · 0 评论 -
2_4_4 类成员模板、类型模板
4_4_类成员模板函数.cpp#include "hjcommon.hpp"#include "4_4/Test.h"using namespace std;HJ_NS_USING//extern template Test<int>; // vs2017编译器此方式能编译通过, Ubuntu 18 编译报错。ex原创 2020-05-17 23:18:03 · 94 阅读 · 0 评论 -
2_5 new与delete、智能指针(share_ptr、weak_ptr、unique_ptr、auto_ptr)
5_1_new_delete.cpp#include "hjcommon.hpp"using namespace std;HJ_NS_USINGclass A{public: int m_num; A() : m_num(0) { cout << "no arg." <&原创 2020-05-17 23:18:31 · 136 阅读 · 0 评论 -
2_6_2 线程创建、传参
6_2_创建线程.cpp#include "hjcommon.hpp"#include <thread> // c++98, 记得链接pthread库using namespace std;HJ_NS_USINGstatic void threadFunc2(){ cout << &qu原创 2020-05-17 23:18:43 · 132 阅读 · 0 评论 -
2_6_5 mutex、lock_guard、unique_lock
6_5_mutex_lock_guard.cpp#include "hjcommon.hpp"#include <thread>#include <list>#include <mutex>using namespace std;HJ_NS_USING原创 2020-05-17 23:18:56 · 95 阅读 · 0 评论 -
2_8_2 array、vector、deque、stack、queue、list、map、set、STL组成
8_2_array_vector.cpp#include "hjcommon.hpp"class A{public: int m_num; A(int num) : m_num(num) { cout << "one arg. " <原创 2020-05-17 23:19:58 · 113 阅读 · 0 评论