C++
文章平均质量分 69
Alan Lan
高精地图、定位、VSLAM、VIO、LIO、多传感器标定、自动驾驶、无人机、点云处理
展开
-
C++11多线程之互斥量(mutex)与条件变量(condition_variable)
示例程序条件变量和std::mutex合用,这是为了线程间通信。#include <iostream>#include <string>#include <thread>#include <mutex>#include <condition_variable> std::mutex m;std::condition_variable cv;std::string data;bool ready = false;bool原创 2021-03-21 16:34:42 · 6027 阅读 · 0 评论 -
基于模板的自动注册工厂模式(C++11实现)
工厂类factory.h#pragma once#include <functional>#include <memory>#include <unordered_map>template <typename T, typename... Args>class Factory { public: static Factory& Instance() { if (!instance_) { instanc原创 2021-03-15 21:22:37 · 2297 阅读 · 0 评论 -
随机数生成(均匀分布、正态分布、C++)
一、生成均匀分布的随机数1. rand生成的随机数在0到RAND_MAX(2147483647)之间,在stdlib中定义,使用 % 结合 / 可生成某个范围内的随机数,但是这里生成的随机数是唯一确定的。#include <iostream>int main () { for (int i = 0; i < 10; ++i) { std::cout << rand() << std::endl; } return 0;}.原创 2020-10-13 14:23:58 · 5074 阅读 · 2 评论 -
多线程并行
#include <iostream>#include <omp.h>#include <thread>#include <chrono>void print(size_t i) { std::this_thread::sleep_for(std::chrono::milliseconds(3000+i)); std::cout << i << ", thread id: " << std::ha.原创 2020-05-21 16:43:18 · 2625 阅读 · 0 评论 -
boost::filesystem的使用
介绍filesystem库是一个可移植的文件系统操作库,它在底层做了大量的工作,使用POSIX标准表示文件系统的路径,使C++具有了类似脚本语言的功能,可以跨平台操作目录、文件,写出通用的脚本程序。1.path的构造函数可以接受C字符串和string,也可以是一个指定首末迭代器字符串序列区间。2.filesystem提供了一系列的文件名(或目录)检查函数。3.有丰富的函数用于获取文...原创 2019-01-02 17:20:24 · 3926 阅读 · 0 评论 -
C++笔记
计时:#include<chrono>chrono::steady_clock::time_point t1=chrono::steady_clock::now();//do somethingchrono::steady_clock::time_point t2=chrono::steady_clock::now();chrono::duration<double...原创 2018-09-18 13:52:53 · 11207 阅读 · 1 评论 -
智能指针(shared_ptr)相关
1、原理:shared_ptr允许拷贝和赋值,其底层实现是以"引用计数"为基础的,通过引用计数来控制空间的释放,每一个shared_ptr的拷贝都指向相同的内存。当有新的指针指向这块空间时,内部的引用计数加1,每析构一次,内部的引用计数减1,直到引用计数减为0时自动删除所指向的堆内存。shared_ptr内部的引用计数是线程安全的,但是对象的读取需要加锁。 初始化。智能指针是个模板类,可...原创 2018-10-25 20:04:25 · 815 阅读 · 0 评论