![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++高阶
进阶必备
CS_Zero
https://github.com/ZhangPeike
展开
-
【算法】C++实现常量时间查询相邻关系的无向图
算法导论》原书第3版介绍图的两种表达方法,邻接链表和邻接矩阵;邻接链表由V个链表构成的数组;但是链表形式无法在常量时间复杂度查询两个结点是否相邻。用unordered_set代替链表,用unordered_map代替数组,实现常量时间查询两个结点是否相邻。原创 2024-02-28 17:10:29 · 365 阅读 · 0 评论 -
一看就懂靠谱的Windows 10 快速搭建 vscode C++开发环境小结
Windows普遍被使用,一些人编程开始之路就是从Windows开始,笔者总结了Windows 10系统上搭建vscode C++的流程,验证通过供参考。visual studio code(简称vscode)是一个功能强大的开源IDE,相比Visual Studio更加灵活易用,笔者做工程项目早期用Clion\Visual Studio,现已投向vscode,插件定制化环境,是目前体验最好的IDE。文章目录下载vscode下载MinGW设置MinGW安装并设置vscode新建C++工程编译和调试2.原创 2021-03-20 17:41:42 · 250 阅读 · 0 评论 -
排列组合问题算法分析与C++实现Leetcode46
排列组合问题算法分析与C++实现文章目录排列组合问题算法分析与C++实现排列问题组合问题排列组合经常出现在编程问题中,如从集合选取组合或排列。Leetcode 46、77分别是排列、组合问题。排列问题采用递归思路实现:对于全排列,每次从集合取出一个元素放在首位,然后对余下的集合实现全排列。C++实现vector<vector<int>> Permutat...原创 2020-03-17 20:28:43 · 237 阅读 · 0 评论 -
Leetcode链表类算法题目分析总结 C++ Python实现
Leetcode链表类算法题目分析总结与C++ Python实现文章目录Leetcode链表类算法题目分析总结与C++ Python实现0. 链表的定义1. 单链表的基本操作:建、查、插、改、删2. 常见单链表算法题链表是常见的数据结构,一般由关键字和成员指针构成,为动态集合提供了一种简单而灵活的表示方法,其中单链表,由于结构简单而问题变化多样,在程序员技术笔、面试中最为常见,可以作为试金石...原创 2020-03-07 22:24:08 · 193 阅读 · 0 评论 -
C++内存管理与智能指针用法小结
C++ 智能指针shared_ptr,unique_ptrstd::shared_ptr&amp;amp;lt;double&amp;amp;gt; db_ptr(new double(0.0));//先声明,后初始化std::shared_ptr&amp;amp;lt;double&amp;amp;gt; db_ptr;db_ptr = std::shared_ptr&amp;amp;lt;double&原创 2018-06-03 16:43:18 · 171 阅读 · 0 评论 -
OpenMVG源码笔记
数据结构landmark 点云与相关特征点template<typename Key, typename Value>using Hash_Map = std::unordered_map<Key, Value>;using Index_T = uint32_t;struct Observation{ Observation():id_feat(Und...原创 2018-05-05 23:12:28 · 1313 阅读 · 0 评论 -
算法小记——实现数学计算Math
常见Math运算的实现1. 不用+实现加法*思路:将数转为二进制,进行加法,发现分为两步,相加(不进位,用异或^)与进位(用相与&)int Add(int a, int b) { int sum = 0; int a_copy = a; int b_copy = b; int carry = 0; do { s...原创 2018-04-25 23:17:28 · 312 阅读 · 0 评论 -
链表的常见操作
首先看代码#include <random>#include <ctime>#include <iostream>#include <map>#include <unordered_map>#include <set>template <typename ElementType> struct原创 2018-03-31 17:08:09 · 174 阅读 · 0 评论 -
GoogleTest gtest 新手快速入门
15~30min完成入门 GoogleTest(gtest)是一套便捷的测试工具,适合测试算法、类(如构造过程)、功能模块等。以Ubuntu为例简介安装与使用例程。。1 快速安装Gtest:Ubuntu打开terminalwget https://github.com/google/googletest/archive/release-1.7.0.tar.gzcd goog...原创 2018-03-30 10:07:11 · 547 阅读 · 0 评论 -
Linux 串口驱动 问题
CH340芯片驱动问题1:Ubuntu 显示串口/dev/ttyUSB0 正常,程序open failed解决: 增加权限 sudo ./executable根本办法:在 /etc/udev/rules.d 目录下,增加一个20-usb-serial.rules文件,输入KERNEL==”ttyUSB*” MODE=”0777” sudo -i cd /etc...原创 2018-03-08 22:34:35 · 489 阅读 · 0 评论 -
C++ 线程编程
函数threadthread* t = new thread(<fun>,<parameter>);mutex#include <iostream>#include <mutex>#include <thread>#include <functional>std::mutex mtx;vo...原创 2018-03-08 22:20:08 · 192 阅读 · 0 评论 -
opencv Mat 数据结构与使用技巧
OPENCV 中CvMat是结构体,Mat是类。CvMat中有一个union叫data, 即常要操作的矩阵元素,有ptr (unsigned),s(signed), f(float), dl(double)等,eg,https://www.cnblogs.com/kwseeker-bolgs/p/4748351.htmlfloat data[9] ={};CvMat your_原创 2017-11-09 23:42:59 · 321 阅读 · 0 评论 -
C++ lambda 表达式
lambda 表达式可理解为匿名函数,或函数符,如函数指针。bool f3(int x){ return x % 3 == 0;}等效于 [](int x){ return x % 3 == 0 };举个栗子#include #include #include #include #include #include #include using原创 2017-11-06 23:45:59 · 182 阅读 · 0 评论