C++基础
三十而学
c++入门
展开
-
c++存储任意类型的函数对象和类
c++ 没有反射系统,在rpc等场景中需要构建用户级反射系统,以便于存储类型或者函数。原创 2022-12-24 19:41:28 · 508 阅读 · 1 评论 -
grpc流式传输示例(c++)
grpc是结合protobuf的远程调用框架,服务端和客户端均支持同步和异步模式。同步模式下,服务器的service函数会阻塞,且当前线程不能再服务其它的client,类似于多线程模式,一个线程服务一个client,可通过ResourceQuota设置最大线程数;异步模式下,grpc提供类似poll方式管理事件,用户注册事件,并接收通知,一个线程管理一个CompletionQueue,通过轮询管理clients,线程模型可以用户自定义,在追求性能的情况下官方推荐异步模式。原创 2022-12-16 17:14:14 · 2673 阅读 · 0 评论 -
c++手写一个json库
Json test0 = Object{ { "key1", "value1" }, { "key2", "好"}, { "key3", Array { 1, 2, 3 } }, };原创 2022-03-19 11:53:37 · 6939 阅读 · 6 评论 -
C++ 程序调试工具类
用于阶段运行时间的计时器TS 多次运算平均时间计时器TC如何消除计时器本身构造的时间开销?用于数据分布情况统计的DataCount, 用matplot++做数据可视化数据溢出时如何求平均值?用于分隔符输出数字,行内输出不同类型的数据的输出函数int p=std::pow(10,N),输出结果为何存在999 9999等-1的误差,怎么解决? githubhttps://github.com/hjhj111/Tools...原创 2021-09-19 21:18:43 · 375 阅读 · 0 评论 -
msvc 三维vector与一维vector读写速度对比
#include<iostream>#include<vector>#include<future>#include<random>#include"TimeCount.h"using namespace std;int row = 200;int col = 200;int hei = 200;int colhei = hei * col;int temp = 0;vector<vector<vector<int&.原创 2021-09-02 12:38:40 · 160 阅读 · 0 评论 -
C++泛型算法忽略的点
C++泛型算法忽略的点泛型算法对于容器的要求不是具有足够的空间,而是足够的元素。equal(iter1begin,iter1end,iter2begin) 以a为标准区间比较插入迭代器 back_inserter inseter front_inserter。。。more流迭代器。。。more...原创 2020-09-03 14:17:38 · 93 阅读 · 1 评论 -
c++IO标准库忽略的点
c++IO标准库iostream 的几个函数iostream 的几个函数bad()系统、硬件错误fail()格式、软件错误good()eof()结束clear()重置以上标志位ps: A,B,C表达式表示计算A,B后的Cgetline() read() write()成员函数vs非成员函数 eg, getline(in,line) /cin.getline(rchar,num,delim)get() put()均是成员函数...原创 2020-09-03 12:46:07 · 78 阅读 · 0 评论 -
C++11并发--实现线程池
C++11并发–实现线程池实现一个线程池类,并加以测试Thread_Pool.h#pragma once#include<iostream>#include<mutex>#include<thread>#include<condition_variable>#include<vector>#include<queue>#include<functional>#include<memory>原创 2020-08-06 10:37:54 · 229 阅读 · 0 评论 -
二叉树前序遍历、中序遍历、后序遍历的迭代版
二叉树前序遍历、中序遍历、后序遍历的迭代版前序遍历void preorder(TreeNode* root){ if(root==NULL) return; stack<TreeNode*> s; while(root||!s.empty()) { while(root) { //...处理root原创 2020-08-02 17:37:04 · 132 阅读 · 0 评论 -
C++并发(四)
C++并发(四)mutexrecursive_mutex 递归锁,防止函数递归调用引起的死锁。try_lock();timed_mutex recursive_timed_mutex对应try_lock_for()或者try_lock_until();std::timed_mutex m;if(m.try_lock_for(std::chrono::seconds(1))){ std::lock_guard<std::timed_mutex> gm(m,std::adop原创 2020-08-01 11:31:17 · 104 阅读 · 0 评论 -
C++11并发(三)
C++11并发(三)wait_for()和wait_until()都不会令延迟的线程启动,只有get()和wait()会。并发处理同一容器的不同元素是可以的,vector例外。并发处理string steam file stream stream buffer会导致不明确行为,但是标准stream可以。volatile防止对变量内存过渡优化。并发的两个关键问题,不可分割性(atomicity)、次序(oder)。并发的风险控制关键,数据竞争。...原创 2020-08-01 07:18:52 · 126 阅读 · 0 评论 -
C++并发(二)
C++并发(二)C++并发(一)低级接口thread和promise与高级接口的区别thread对象没有发射策略,尽量开启新线程。没有接口获取线程结果,只有线程ID。必须用exception_ptr导出异常,否则一旦线程异常溢出,程序terminate()。线程必须join()或者detach(),否则terminate(),线程发生移动分配,一样terminate().线程在main()结束前未终止,强行终止。threadquick_exit()结束程序时不析构global和stat原创 2020-07-31 22:11:51 · 114 阅读 · 0 评论 -
C++11并发(一)
C++11并发(一)头文件#include<thread>//线程头文件#include<chrono>//时间相关函数高级接口std::future<int> result1(std::async(func1));int result2=func2();int resulit=result1.get()+result2;func1()在不支持线程或无线程可用时,通过get()会同步执行,否则益步执行。要遵循 call early and r原创 2020-07-31 16:29:53 · 117 阅读 · 0 评论 -
必须初始列初始化的成员
必须初始列初始化的成员const成员引用成员对象成员(对象成员所对应的类没有默认构造函数)原创 2020-07-26 11:49:41 · 91 阅读 · 0 评论 -
window下socket(udp)控制台程序
window下socket(udp)控制台程序server#include <iostream>#include <winsock2.h>#pragma comment(lib, "WS2_32.lib")const unsigned int PORT = 999;const int kBufferSize = 1024;int main() { WSADATA wsData; if (WSAStartup(MAKEWORD(2, 2), &wsD原创 2020-07-22 11:59:53 · 181 阅读 · 1 评论 -
window下socket(TCP)控制台程序
window下socket(TCP)控制台程序建立两个控制台项目,利用套接字,理解套接字的工作流程server端#include<iostream>#include <winsock2.h> using namespace std;#pragma comment(lib,"ws2_32.lib") //链接库 int main(int argc, char* argv[]){ //初始化网络环境 WORD sockVersion = MAKEWORD(原创 2020-07-21 16:43:41 · 427 阅读 · 0 评论 -
C++ stl标准库的一些忽略细节
stringassign();append();int find(const chars, int pos,int n) const; //查找s中以pos为起点,长度为n的串在调用者的第一次出现的位置;int rfind(const char s,int pos,int n) const; //最后一次出现位置;string substr(int pos =0,int n=npos) const; //返回由pos开始的n个字符组成的字符串;vectora.swap(b)元.原创 2020-07-21 09:26:23 · 77 阅读 · 0 评论