![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++11
未来老干部
努力学习,紧跟潮流。
从事linux C++ 服务器开发
展开
-
C++不定参数实现写CSV文件
自己实现一个写csv的类,方便使用,使用不定参数模板实现。直接上代码,代码很简单,如果不设置csv头的话,就不校验每行数据的个数。如果写入了头,那就校验每一行数据的个数。头文件#pragma once#ifndef CSV_WRITER_INCLUDE_H_#define CSV_WRITER_INCLUDE_H_#include <fstream>#include <vector>#include <ios>#include <mem原创 2021-02-10 13:13:42 · 381 阅读 · 0 评论 -
iterator转换为reverse_iterator(正向迭代器转为逆向迭代器)
遇到这样一种情形,在set集合中find到某个元素,然后从这个元素,往begin的方向遍历。正常end方向遍历的话,我们可以通过iter != set.end() 作为结束判断。但是往前遍历的话,begin是有数据的,用 iter != set.begin()判断的话,还需要额外进行一次begin元素的操作。实际上我们是可以将正向迭代器转换为逆向迭代器的。举个例子。int main(){ std::set<int> si = {1,2,3,4,5,6,7}; ..原创 2020-09-08 10:02:21 · 1552 阅读 · 0 评论 -
C++线程安全map (低效率)
map的并发操作是不安全的,C++里边有红黑树实现的std::map和hash表 unordered_map。在《C++并发编程实战》一书中的162页提供了一个细粒度锁的MAP数据结构。使用了boost的shared_mutex (C++14已经支持,C++11没有)使用了std::hash大家可以参考这本书的实现,如果支持C++14的话可以不用boost。我这里简单写一个对std::map整个数据结构加锁的简单的类,我是在自己写一些测试demo的时候可能会用。#ifnde...原创 2020-06-26 21:57:26 · 8191 阅读 · 3 评论 -
std::thread的常用参数传递总结
实参的生命周期给std::thread传递参数的时候要注意,参数是引用或者指针的情况下,要注意生命周期的问题看代码#include <iostream>#include <thread>#include <chrono>#include <fstream>using namespace std::chrono_literals;...原创 2019-03-25 11:28:07 · 16982 阅读 · 0 评论 -
enable_shared_from_this的用处
来自Stackoverflow的回答--------转载信息------------作者:wqfhenanxc来源:CSDN原文: https://blog.csdn.net/wqfhenanxc/article/details/80532931很清晰地讲解了enable_shared_from_this所解决的用其他方法无法解决的问题。https://stackover...转载 2019-05-02 12:18:13 · 429 阅读 · 0 评论