软件工具
平台、编程语言、数据结构等知识
chennuo0125-HIT
Slam, Vio
展开
-
Ubuntu20.04安装使用matplotlib-cpp
按官网安装方法无法有效的在ubuntu20.04系统上部署该软件,因此将最后成功安装的过程记录一下,便于以后安装。原创 2022-08-04 14:48:24 · 2255 阅读 · 0 评论 -
常见查找算法性能总结
性能算法最坏情况下的运行时间的增长数量级最坏情况下的运行时间的增长数量级平均情况下的运行时间的增长数量级平均情况下的运行时间的增长数量级内存使用查找插入查找命中插入顺序查询NNN/2N48N二分查找lgNNlgNN/216N红黑树2lgN2lgNlgNlgN64N拉链法散列表<lgN<lgNN/(2M)N/M48N+32M优缺点使用的数据结构优点缺点顺序查找(链表原创 2020-10-30 11:05:51 · 1452 阅读 · 2 评论 -
std::sort算法原理
前一篇博客将主流的一些排序算法的性能进行了比较,于是抱着好奇的心态想了解了解c++标准库中std::sort采用的排序方法.std::sort基本框架基本框架如下图所示:判断输入数据个数是否小于给定阈值,如果是,则直接进行插入排序否则,判断递归深度是否小于阈值,如果是,进行快速排序否则,进行堆排序循环1,2,3源码剖析 template<typename _RandomAccessIterator, typename _Compare> inline void _原创 2020-10-26 20:35:42 · 1710 阅读 · 0 评论 -
常见排序算法性能总结
各种排序算法性能特点算法是否稳定是否原地排序时间复杂度空间复杂度备注选择排序否是N^21插入排序是是介于N和N^2之间1取决于元素的输入情况希尔排序否是NlogN? N^6/5?1快速排序否是NlogNlogN运行效率由概率提供保证归并排序是否NlogNN堆排序否是NlogN1...原创 2020-10-26 17:18:43 · 682 阅读 · 0 评论 -
std vector容器快速添加元素和快速复制的方法
demo#include <iostream>#include <vector>#include <algorithm>using namespace std;struct Point{ float x, y, z; Point():x(0.0), y(0.0), z(0.0){}};int main (int argc, char** argv){ const int num = 5000000; ///////原创 2020-08-29 10:37:55 · 5166 阅读 · 0 评论 -
try catch在多线程中的使用
有时程序在运行过程中需要动态分配内存,而内存的大小需要在运行过程中才能确定,此时为了防止系统内存不足而导致程序异常退出问题,可采用try catch来捕获异常并做对应的决策.如果是单线程运行程序,直接在首尾添加异常捕获机制就能捕获到异常,但如果在多线程中运行就需要注意try catch使用的位置.demo1:#include <iostream>#include <vector>#include <exception>#include <omp.h>原创 2020-08-26 21:40:04 · 3718 阅读 · 0 评论 -
stringstream在多线程中运行低效问题
问题测试:demo 0:int main (int argc, char** argv){ const int frame_num = 5; const int num = 5*1024*1024; vector<string> raw_datas(num, "666"); float fs = omp_get_wtime(); #pragma omp parallel for for (int i = 0; i < 5; i++)原创 2020-08-19 12:14:36 · 838 阅读 · 0 评论 -
c++函数未返回函数值
test0#include <iostream>#include <vector>using namespace std;int add(int a, int b){ int c = a+b; return c;}int main(int argc, char** argv){ int a = 1; int b = 2; int c = add(a, b); cout<<"c->"<<原创 2020-07-20 18:33:32 · 1634 阅读 · 0 评论 -
c++ 如何实现数组快速赋相同的值
数组赋值方式性能比较测试代码:#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <cstring>int main(){ //-----------测试char数组---------- cha...原创 2020-02-06 11:10:39 · 5836 阅读 · 0 评论 -
gitlab 社区版安装、备份、迁移 (Omnibus方式)
gitlab 社区版安装、备份、迁移 (Omnibus方式)1、安装1.1 安装和配置需要的依赖sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates 1.2 安装postfix用于发送邮件提醒sudo apt-get install -y postfix 1.3 添加...原创 2019-06-22 11:59:51 · 750 阅读 · 0 评论