C++
问豆子
这个作者很懒,什么都没留下…
展开
-
C++ 单链表快速排序
#include #include using namespace std;typedef struct Node{ int data; Node * next;}Node;void swap(Node * A, Node *B){ coutdatadata<<endl; int temp= A->data; A->data=B->data; B->data=tem原创 2015-09-21 23:10:50 · 13930 阅读 · 3 评论 -
多个任务的最短执行时间 std::async
正所谓一个木桶能装多少水, 取决于最短的木板,多个任务执行的最长时间,取决于多个任务中最长的时间。#include <iostream>#include <future>#include <chrono>#include <unistd.h>#include <ctime>int func1() { sleep(10); return 1;}int func2() { sleep(5); return 2;原创 2022-02-15 22:27:57 · 604 阅读 · 0 评论 -
在头文件中实现单例类,在二进制文件中会有多个实例吗?
答案:不会。为什么会有这个疑问呢?我们在多个cpp 包含同一个头文件后,在每个编译单元(cpp文件)编译的时候都会有一份,既然这样,那我们的一个静态实例对象在每个编译单元会不会都有一份,然后可执行二进制文件中会不会有多份呢?测试一把// static_test.h#pragma once#include <stdio.h>class static_test { public: static static_test * Instance() { s原创 2021-12-17 20:09:30 · 370 阅读 · 0 评论 -
多叉树格式化打印
效果如下└──0 ├──1 │ ├──11 │ │ ├──111 │ │ └──112 │ └──12 │ └──13 │ └──14 └──2 ├──21 └──3代码如下#include <iostream>#include <vector>#include <memory>class MNode;...原创 2021-12-04 20:15:22 · 1282 阅读 · 0 评论 -
signal handler 例子
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <iostream>void sig_handler(int i) { std::cout << "sig_handler int" << std::endl; exit(1);}int main() { ...原创 2021-10-14 14:53:11 · 414 阅读 · 0 评论 -
uyvy422 shader 贴图及效果分析
uyvy422在纹理贴图的时候经常出现竖条纹。在v4l的库里找到一个方法,验证下来不会出现竖条纹。转纹理方式: glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_frameWidth / 2, m_frameHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);fragment shaderuniform float texture_width;uniform float texture_height原创 2021-10-03 12:51:28 · 845 阅读 · 0 评论 -
linux消息队列发送结构体
mq_common.hmq_service.cppmq_cleint.cpp原创 2021-09-29 21:13:30 · 7901 阅读 · 0 评论 -
shared_ptr<void*> 能否释放内存?
#include <iostream>#include <memory>class A { public: int a ; ~A() { std::cout << "~A" << std::endl; } A() { std::cout << "A" << std::endl; }};..原创 2021-09-28 18:13:32 · 465 阅读 · 0 评论 -
递归和非递归版本的快速排序
#include <iostream>#include <vector>#include <stack>template <typename T> void swap(T * t1, T * t2) { T tmp = *t1; *t1 = *t2; *t2 = tmp;}// 递归版本void quicksort(std::vector<int> & vec, int begin, int ..原创 2021-09-27 11:59:06 · 64 阅读 · 0 评论 -
传递类成员函数作为回调函数
bind 类实例对象#include <iostream>#include <string>class A { public: int a = 1; void f(int a1, int b1) { std::cout << "a1" << a1 << ", b1" << b1 << std::endl; }};using C原创 2021-09-24 14:37:34 · 7929 阅读 · 1 评论 -
10x10的黑白格,计算相邻黑白格的最大面积
#include <iostream>#include <math.h>#include <tuple>#include <utility>#include <vector>constexpr int len = 10;// black is true, white is false;#define BLACK (true)#define WHITE (false)using COLOR = bool;COLOR pane..原创 2021-09-16 17:51:25 · 7650 阅读 · 0 评论 -
带有虚函数的class的size如何计算?
先说结论:1. 非虚函数,不占空间,为类共享2. 带虚函数class,只占一个虚函数表的指针的空间。3. 子类和父类共享一个虚函数表指针。测试code:#include <iostream>class A { public: virtual void f1() {}};class B { public: virtual void f2() {} virtual void f3() {}};c原创 2021-09-10 17:53:00 · 7932 阅读 · 0 评论 -
归并排序 mergesort
#include <iostream>#include <vector>#include <stdlib.h>#include <chrono>#include <cmath>#include <algorithm>template <typename T> inline void swap(T * t1, T * t2) { T tmp = *t1; *t1 = *t2; *t2 ..原创 2021-09-07 20:27:22 · 10077 阅读 · 0 评论 -
子类转成基类指针,使用智能指针包装,会造成内存泄漏吗?
答案是不会。#include <iostream>#include <string>#include <memory>class A { public: A() { std::cout << "A" << std::endl; } ~A() { std::cout << "~A" << std::endl;原创 2021-09-07 15:22:53 · 19865 阅读 · 0 评论 -
冒泡排序 vs 快速排序 vs 归并排序
#include <iostream>#include <vector>#include <stdlib.h>#include <chrono>template <typename T> inline void swap(T * t1, T * t2) { T tmp = *t1; *t1 = *t2; *t2 = tmp;}template <typename T>void quickso..原创 2021-09-06 15:02:37 · 10025 阅读 · 0 评论 -
冒泡排序 bubble sort
#include <iostream>#include <array>template <typename T> void swap(T * t1, T * t2) { T tmp = *t1; *t1 = *t2; *t2 = tmp;}template <typename T, std::size_t Dim>void bubblesort(std::array<T, Dim> & arr) {..原创 2021-09-06 11:34:43 · 10048 阅读 · 0 评论 -
-fno-elide-constructors 构造函数编译器优化
看到网上的一段测试移动构造函数的代码,如下,结果只走了默认构造函数#include <iostream>class A { public: A() { std::cout << "default Constructor" << std::endl; } A(const A&) { std::cout << "copy Constructor原创 2021-08-23 14:15:33 · 10602 阅读 · 0 评论 -
文件名按照自定义类型大小排序
#include <iostream>#include <vector>#include <string>#include <algorithm>int main() { std::vector<std::string> a = {"11", "12", "13", "21", "22", "111", "109", "136", "255"}; std::sort(a.begin(), a.end(..原创 2021-03-12 14:11:46 · 10246 阅读 · 0 评论