![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
我不叫小北
这个作者很懒,什么都没留下…
展开
-
网格化中常用的数据结构
最简单的三角形网格化结构,每个面存储三个顶点的坐标,这个方法存在的两个缺点,1是连接信息不能被显示地捕捉到,顶点和相关联的数据复制了多次。顶点的冗余的问题可以通过面集索引或者共享顶点的数据结构存储。因为简单和存储效率高,许多文件格式都采用了这种表示方法,比如off,obj,VRML.相似地,它和一类高效率地渲染算法相关。然而,因为没有保存有效地链接信息,这种数据结构需要昂贵的搜索来恢复顶点的局部链接信息,因此,这种方法对大多数算法来说,不足够搞效。这是大多数算法频繁使用的操作集合1 定位单独的顶原创 2020-08-05 23:27:29 · 1421 阅读 · 0 评论 -
Polygon Mesh Processing Windows Visual studio例子代码的配置
最近在配置一些图形学的东西,尝试在windows下进行配置Polygon Mesh Processing 书中的例子代码。环境说明win10 visual studio 2019配置步骤下载书配套的代码,地址书籍官网地址,找到download ,下载书的源码。代码的编译下载glutdlls37解压到lib文件夹,为了方便管理,把glut.h,移动到PMP-Code\lib\taucs-win32\include位置点击项目属性3.1 配置管理器,选择Release32点击 01-M原创 2020-07-26 15:21:33 · 361 阅读 · 1 评论 -
C++中的隐藏规则
C++中的隐藏规则如果派生类的函数与基类的函数同名,但是参数不同,此时,无论有无virtual关键字,基类的函数将被隐藏(重载是一个类中有同名的函数)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字,此时,基类的函数被隐藏(覆盖是指基类函数有virtual关键字) #include <iostream> using namespace std;原创 2017-01-14 18:38:16 · 1274 阅读 · 0 评论 -
Qt设计滑动条
初学Qt,采用Qt实现滑动条的代码如下,可以实现输入年龄,滑动条和文本框同步。本文参照《C++ GUI programming with Qt 4》#include "mainwindow.h"#include #include #include #include int main(int argc, char *argv[]){ QApp翻译 2017-05-30 21:35:31 · 2107 阅读 · 0 评论 -
Qt 中单击按钮不响应
想在窗口中添加一个按钮的响应函数,设置好布局后,怎么添加响应函数都不能响应,只能把加载图片的函数添加信号关联了。菜单和工具栏都有关联了该函数,都可以响应,但按钮就是不能响应。关联信号后就可以很好地响应了。。。。原创 2017-08-04 10:19:40 · 6086 阅读 · 0 评论 -
C++创建模式
常用的创建设计模式包括如下4种:1 生成器模式2 工厂模式3 原型模式4 单例模式在软件工程中,创建模式是用来处理目标创建的机制,尝试以合适的方式创建对象的解决方法。对象创建的的基本形式可能会导致设计问题或者增加设计的复杂性。创建模式通过对象的创建解决这个问题。生成器模式:生成器模式从复杂对象的表现形式中分离出它的构造函数,可以实现相同的构造函数创建出不通的对象。问题:我们想构建复杂的对象,但是我...翻译 2018-05-09 15:59:55 · 308 阅读 · 0 评论 -
工厂模式
定义:一个用于从一组派生类中创建一个类的实例的实用程序类抽象工厂:一个创建几个类的实例的实用程序类。也可以返回某一组的工厂类。工厂设计模式在需要创建多种不同类型的对象,所有派生类来自于相同的基类有比较大的用处。工厂方法定义了一个创建对象的方法,子类可以重写以指定将要创建的派生类类型。因此,在运行时,工厂方法可以传递一个期待对象的描述。并且给新的实例返回基类指针。当为基类使用精心设计的接口时,该模式...翻译 2018-05-09 19:37:23 · 152 阅读 · 0 评论 -
adapter 模式
把一个类的接口转换为另一个类的接口(该接口是客户端期待的接口)。Adapter让类共同工作,而不会因为接口的不兼容性而不能用。#include <iostream>using namespace std;class Hindu{public: virtual ~Hindu() = default; virtual void performsHinduRitua...翻译 2018-05-19 21:18:52 · 217 阅读 · 0 评论 -
Bridge模式
Bridge模式用来从实现中分离接口出来,通过这样的方法,实现和接口都可以单例灵活地改变翻译 2018-05-28 21:41:48 · 393 阅读 · 0 评论 -
Facade模式
Facade模式通过提供一个接口给客户,从而隐藏系统的复杂性。客户可以通过该接口来访问系统。Facade定义一个高层的接口让子系统可以被容易的使用。例如让一个类的方法通过调用其他几个类来执行复杂的过程。#include <iostream>#include <string>using namespace std;class Alarm{public: v...翻译 2018-06-24 22:12:56 · 175 阅读 · 0 评论 -
图像处理基础--像素遍历,浅拷贝,深拷贝
图像处理基础–像素遍历,浅拷贝,深拷贝这篇博客主要根据高翔的《视觉SLAM14讲》的开源代码进行学习,在Windows上,采用VS2019对代码进行编译。find_package( OpenCV 3 REQUIRED )set(OpenCV_DIR "D:/Code/SLAM/ORB_SLAM2/Thirdparty/opencv/sources/build/install/lib")f...原创 2019-08-18 22:54:33 · 537 阅读 · 0 评论 -
ORB_SLAM2 windows配置
ORB_SLAM2 windows配置ORB_SLAM2的下载地址 https://github.com/raulmur/ORB_SLAM2.git软件环境VS Visual Studio Community 2019cmake 3.15.1需要用到的库opencv 2.4.13g2o 默认的DBoW2 默认的eigen 3.3.7Pangolin 最新的编译顺序...原创 2019-08-17 22:56:25 · 1696 阅读 · 0 评论 -
C++中的重载与覆盖
1. 成员函数被重载的特征:相同的范围 函数名字相同 参数不同 virtual关键字可有可无2. 覆盖是指派生类函数覆盖基类函数,特征是不同的范围(分别位于派生类与基类) 函数名字相同 参数相同 基类函数必须有virtual关键字#include <iostream>using namespace std;class Base{public: void f(int x)原创 2017-01-14 16:06:54 · 311 阅读 · 0 评论 -
指针参数的传递和内存分配
#include <iostream>using namespace std;void GetMemory1(char *p,int num){p=(char*)malloc(sizeof(char)*num);}void GetMemory2(char **p,int num){*p=(char*)malloc(sizeof(char)*num);}char *GetMemory3原创 2017-01-13 18:26:07 · 703 阅读 · 0 评论 -
各个类型所占字节
32位系统中类型与所占的字节数的关系,通过如下程序进行测试 #include <iostream> using namespace std; int main() { cout<<"the 32bit operation system int is "<<sizeof(int)<<endl; cout<<"the 32bit operation syst原创 2017-01-13 16:07:50 · 580 阅读 · 0 评论 -
迭代器的简单使用
#include #include using namespace std;void main(){list list1;for(int i=0;ilist1.push_back(i);list::iterator it;for(it=list1.begin();it!=list1.end();++it)cout}原创 2016-09-25 17:55:30 · 245 阅读 · 0 评论 -
运算符重载
运用加法运算符重载,实现时间的增加#include using namespace std;class Time{private:int hours;int minutes;public:Time();Time(int h,int m=0);void AddMin(int m);void AddHr(int h);void Reset(i原创 2016-09-25 17:12:15 · 283 阅读 · 0 评论 -
使用命名空间和类中原本有的函数同时出现时的调用次序
#include using namespace std;class father{public: void F(void){cout}};class derived :public father{public:using father::F;void F(){cout};void main(){d原创 2016-09-25 14:58:00 · 410 阅读 · 0 评论 -
C++创建动态数组
#include using namespace std;void main(){int a=10;int *p1=&a;int *p2;coutcoutint *p=new int[10];coutfor(int i=0;i{p[i]=i;}coutdelete [] p;}原创 2016-09-25 12:41:27 · 864 阅读 · 0 评论 -
cuda做点乘
#include "cuda_runtime.h"#include "cublas_v2.h"#include "time.h"#include using namespace std;#define imin(a,b) (aconst int N = 31 * 1024;const int threadsPerBlock = 256;const int block原创 2016-09-22 11:43:53 · 959 阅读 · 0 评论 -
cuda实例——简单调用核函数
#include "cublas_v2.h"#include "time.h"#include using namespace std;__global__ void add(int a, int b, int *c){*c = a + b;}//核函数int main(void){int c;int *dev_c;cudaMalloc( (vo原创 2016-09-21 11:50:41 · 3127 阅读 · 0 评论 -
CUDA矢量相加
#include "cuda_runtime.h"#include "cublas_v2.h"#include "time.h"#include using namespace std;#define N 10__global__ void add(int *a, int *b, int *c){int tid = blockIdx.x;if (ti原创 2016-09-21 19:17:21 · 736 阅读 · 0 评论 -
用CUDA在GPU熵对任意矢量长度求和
#define N (30*1024)__global__ void add(int *a, int *b, int *c){#include "cuda_runtime.h"#include "cublas_v2.h"#include "time.h"#include using namespace std;int tid =threadIdx.x+ bloc原创 2016-09-22 09:48:44 · 509 阅读 · 0 评论 -
用c++实现归并排序
用c++实现归并排序#includeusing namespace std;void merge(int A[],int p,int q,int r){ int n1,n2; n1=q-p+1; n2=r-q; int L[n1+1],R[n2+1]; for(int i=0;i L[i]=A[p+i];原创 2017-01-04 19:51:46 · 433 阅读 · 0 评论 -
快速排序
#includeusing namespace std;int partition(int A[],int p,int r){int temp=A[r];int i,j;int exchange; i=p-1;for(j=p;j if(A[j] { i=i+1; exchange=A[j]; A[j]=原创 2017-01-04 21:57:05 · 212 阅读 · 0 评论 -
linux 线程创建与执行
参考 Linux程序设计#include #include #include #include #include void *thread_function(void *arg);char message[]="Hello World";int main(){int res;pthread_t a_thread;void *thread_re原创 2016-12-29 15:00:37 · 624 阅读 · 0 评论 -
使用try catch抛出和捕获异常
#include #include using namespace std;void main(){string error;int a,b;cin>>a>>b;try{if(a>b)throw 100;}catch(int){cout}cin.get();}原创 2016-09-25 18:09:02 · 2939 阅读 · 1 评论