C++
XYZHCS
这个作者很懒,什么都没留下…
展开
-
OSG访问者模式
【代码】OSG访问者模式。原创 2024-05-17 15:02:08 · 218 阅读 · 0 评论 -
C/C++常用的编译器分类
gcc 原名GNU C Collection,后因支持多种编程语言,改名为GNU Compiler Collection,是大多数类Unix(如Linux)的标准编译器,且适用于Windows(借助其他移植项目实现,如MingW、Cygwin),gcc支持多种计算机体系芯片,如x86、ARM。gcc家族中,GNU GCC 是根本,其他的编译器都是从它导出的gcc是gnu c的编译器g++是gnu c++的编译器。原创 2024-05-12 15:15:24 · 429 阅读 · 0 评论 -
模型加载-Assimp
【代码】模型加载-Assimp。原创 2024-02-16 16:45:57 · 381 阅读 · 0 评论 -
材质(Materials)
【代码】材质(Materials)原创 2024-01-28 18:16:45 · 353 阅读 · 0 评论 -
Phong Lighting Model
【代码】Phong Lighting Model。原创 2024-01-28 17:56:51 · 371 阅读 · 0 评论 -
camera
【代码】opengl-camera。原创 2024-01-23 21:48:35 · 405 阅读 · 0 评论 -
空间参考简介
椭球体表面上的点与地球表面上的特定位置相匹配,也就是对椭球体进行定位,该点也被称做基准面的原点。:因为大地水准面的形状是不规则的,所以选用一个同大地水准面相近的可以用数学方法来表达的椭球体来代替,简称地球椭球体(Ellipsoid),是一个规则的曲面。:就是把地球表面的任意点,利用一定的数学法则,转换到地图平面上的理论和方法,一般有两种坐标系来进行表示,分别是地理坐标系和投影坐标系。,是基于地理坐标系的,使用基于X,Y值的坐标系来描述地球上某个点所处的位置,投影坐标系=地理坐标系+投影方法+线性单位。原创 2023-10-23 21:53:47 · 120 阅读 · 0 评论 -
字符串排序
#include<iostream>#include<cstring>#include<set>#include<map>#include<vector>#include<math.h>#include<algorithm>using namespace std;#define M 5005 bool cmp(string a,string b){ return a<b;}int ma.原创 2021-06-20 09:49:20 · 153 阅读 · 0 评论 -
提取不重复的整数
描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入:9876673输出:37689...原创 2021-06-19 16:08:06 · 475 阅读 · 0 评论 -
质数因子求解
#include<iostream>#include<cstring>#include<set>#include<map>#include<math.h>using namespace std;#define M 5005 int a[M];char c[M];int main(){ long n; int i=2; cin>>n; if(n<=2) { ...原创 2021-06-19 12:19:58 · 301 阅读 · 0 评论 -
回调函数-简单示例
#include<stdio.h>void callback(){ printf("I am callback.\n\n");}void callback(int a){ printf("I am callback which has an argument.\n"); printf("a=%d\n",a);}void handle(void (*callback)()){ printf("I am the first handle.\n"); callback();.原创 2021-04-28 16:40:39 · 115 阅读 · 0 评论 -
二级指针-char *[]
#include<stdio.h>int main(){ char *a[] = {"Hello","World","China"}; char**s = a; printf("%s\n",a[0]);//Hello printf("%c\n",*(++a[1]));//o printf("%s\n",a[2]);//China}原创 2021-04-25 19:09:54 · 243 阅读 · 0 评论 -
判断IP地址是否合法
#include<iostream>#define maxn 999using namespace std;int judge(char s[],int len){ if(len<7||len>15||s[0]=='.'||s[len-1]=='.')//检查长度和首、尾 return 0; for(int i=0;s[i]!='\0';i++)//检查是否只有.和数字 { if(s[i]!='.') { if('9'<s[i]||s[i]&.原创 2020-06-14 16:38:30 · 637 阅读 · 0 评论 -
五子棋-判断输赢
#include<iostream>using namespace std;#define maxn 100int a[maxn][maxn],n;int dir[8][2]={1,1,1,-1,-1,-1,-1,1,0,1,0,-1,1,0,-1,0};int check(int x,int y){ if(x<0||y<0||x>=n||y>=n) return 0; return 1;}int main(){ cin>>n; .原创 2020-06-14 16:34:47 · 875 阅读 · 0 评论 -
set
#include<iostream>using namespace std;#include<set>//set不可重复,multiset可重复,都自动排序 void printSet(set<int>&s){ for(set<int>::iterator it=s.begin();it!=s.end();it++) { cout<<*it<<" "; } cout<<endl;}//s.原创 2020-06-13 17:48:43 · 108 阅读 · 0 评论 -
链表list
#include<iostream>using namespace std;#include<list>//链表list //STL中的链表是一个双向循环链表 //list的迭代器是双向迭代器 void printList(const list<int>&L){ for(list<int>::const_iterator it=L.begin();it!=L.end();it++) { cout<<*it<&l.原创 2020-06-13 17:02:48 · 113 阅读 · 0 评论 -
deque
#include<iostream>using namespace std;#include<deque>#include<algorithm>void printDeque(const deque<int> &d)//const 限制只读 { for(deque<int>::const_iterator it=d.begin();it!=d.end();it++) { cout<<*it<<" .原创 2020-06-13 15:55:13 · 115 阅读 · 0 评论 -
map
#include<iostream>using namespace std;#include<map>void printMap(map<int, int>&m){ for(map<int,int>::iterator it=m.begin();it!=m.end();it++) { cout<<"key="<<(*it).first<<" value="<<it->second&.原创 2020-06-13 11:45:14 · 99 阅读 · 0 评论 -
虚析构和纯虚析构
#include<iostream>using namespace std;/*使用多态时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码解决:将父类中的析构函数改为虚析构或者纯虚析构 虚析构和纯虚析构共性:1.可以解决父类指针释放子类对象 2.都需要有具体的函数实现区别:如果是纯虚析构,该类属于抽象类,无法实例化对象虚析构语法virtual ~类名(){}纯虚析构语法virtual ~类名()=0;类名::~类名(){} */ c.原创 2020-06-09 08:29:28 · 689 阅读 · 0 评论 -
纯虚函数与抽象类
#include<iostream>using namespace std;//纯虚函数和抽象类class Base{ public: //纯虚函数 //只要有一个纯虚函数,这个类成为抽象类 //抽象类对象 //1.无法实例化对象 //2.抽象类的子类,必须要重写父类中的纯虚函数,否则也属于抽象类 virtual void func()=0;};class Son:public Base{ public: virtual void func().原创 2020-06-08 18:26:32 · 374 阅读 · 0 评论 -
多态
#include<iostream>using namespace std;#include<string>class Animal{ public: //虚函数 virtual void speak() { cout<<"动物在说话"<<endl; }};class Cat:public Animal{ public: //重写:函数返回值类型、函数名、参数列表完全相同 virtual void .原创 2020-06-08 18:24:28 · 136 阅读 · 0 评论 -
重载操作符
#include<iostream>using namespace std;#include<string>class Person{public: //通过成员函数重载 /*Person operator+ (Person &p) { Person temp; temp.m_A=this->m_A+p.m_A; temp.m_B=this->m_B+p.m_B; return temp; }*/ int m_A; .原创 2020-06-08 18:23:15 · 145 阅读 · 0 评论 -
初始化列表
#include<iostream>using namespace std;class Person{public: //传统初始化操作 /*Person(int a,int b,int c) { m_A=a; m_B=b; m_C=c; }*/ //初始化列表 Person(int a,int b,int c):m_A(a) ,m_B(b),m_C(c) { } int m_A; int m_B; int m_C;};void t.原创 2020-06-08 18:19:36 · 141 阅读 · 0 评论 -
构造函数的调用顺序
#include<iostream>using namespace std;#include<string>class Phone{public: Phone(string pName) { cout<<"Phone的构造函数调用"<<endl; m_PName=pName; } ~Phone() { cout<<"Phone的析构函数调用"<<endl; } string m_PName; .原创 2020-06-08 18:21:48 · 305 阅读 · 0 评论