数据结构与算法
主要发布数据结构与算法相关内容。
艾孜尔江
欢迎交流共享资源!
展开
-
C#初学者的Hello World代码_艾孜尔江撰
using System;using System.Collections.Generic;public class MyClass{ struct Name{ public string FirstName; public string LastName; public string GetName(){ return FirstName + "·" + LastName; } } struct Vector3{ public float x;原创 2021-08-14 19:33:02 · 118010 阅读 · 0 评论 -
C/C++四种方法实现加法操作_艾孜尔江撰
/************************************************************************* > File Name: add.cpp > Author: Alexander > Mail: mysoft@111.com > Created Time: 一 8/24 20:16:39 2020 **************************************************************原创 2021-06-24 10:45:16 · 166552 阅读 · 2 评论 -
C及数据结构一瞥_艾孜尔江撰
#include<iostream>using namespace std;void run();int main() { run();}void run() { //int i2 = 555, i1 = 666; //if opened, the result will be 1, which is the space not allocated int i1= 555 , i2 = 666; //跟声明顺序有关,先声明的变量会先被分配到内存空间 int* ptr =原创 2021-06-22 20:42:13 · 165818 阅读 · 1 评论 -
C++笔记一瞥_艾孜尔江撰
原创 2021-06-22 19:19:30 · 166062 阅读 · 0 评论 -
网页端UVC相机测试_艾孜尔江撰
multiCam.html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><video i.原创 2021-06-22 19:12:50 · 165705 阅读 · 1 评论 -
艾孜尔江毕设中使用到的Unity扫描摄像头的API
原创 2021-06-22 12:38:56 · 165919 阅读 · 0 评论 -
Java制作软光栅化渲染器_艾孜尔江撰
Main.java :import java.io.IOException;/** * The sole purpose of this class is to hold the main method. * * Any other use should be placed in a separate class */public class Main{ // Lazy exception handling here. You can do something more inter.原创 2021-06-22 09:25:14 · 166326 阅读 · 0 评论 -
指针常量与常量指针_艾孜尔江撰
代码如下:#include <iostream>void RefConst(){ char greeting[] = "Hello world!"; // ---- (0) char* p = greeting; // non-const pointer, non-const data const char* p = greeting; // non-const pointer, const data (常量指针、指向常量的指针: *p,即'指针指向的值'为const,不能修改).原创 2021-06-17 20:34:44 · 166688 阅读 · 0 评论 -
获取平面的法向量_艾孜尔江撰
Vector4 GetNormalVector(const Vector4& p1, const Vector4& p2, const Vector4& p3) { Vector4 s1, s2, pn; s1 = p2 - p1; s2 = p3 - p2; pn = s2 ^ s1; pn.Normalize(); return pn; }作者:艾孜尔江·艾尔斯兰原创 2021-06-14 21:19:31 · 167099 阅读 · 0 评论 -
图形学中判断背面剔除性_艾孜尔江撰
bool ShouldCullBack(const Vector4& vec) { // anti-clock wise culling Vector4 v(0.f, 0.f, 1.f, 0.f); if (v * vec > 0) return false; return true; }作者:艾孜尔江·艾尔斯兰原创 2021-06-14 21:16:59 · 167174 阅读 · 0 评论 -
判断点是否在CVV内_艾孜尔江撰
bool IsOutsideCVV(const Vector4& v) { float x = v.getX(); float y = v.getY(); float z = v.getZ(); float w = v.getW(); if (x <= w && x >= -w && y <= w && y >= -w && z <= w && z >= 0)原创 2021-06-14 21:15:00 · 166922 阅读 · 0 评论 -
C++输出语句重载_艾孜尔江撰
/// 在类中这样写,这是Colour类中的一个函数 inline std::ostream& operator <<(std::ostream& os, const Colour& right) { os << "r: " << right.r << "; g: " << right.g << "; b: " << right.b; return os; }作者:艾孜尔江原创 2021-06-14 21:12:49 · 166886 阅读 · 0 评论 -
重载(Overload)和重写(Override)的区别_艾孜尔江撰
重写:重写(Override) 是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Override)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。重载:重载(Overload) 是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们参数列表不同,则称为方法的重载(Overload)区别:重载实现于一个类中;重写实现于子类中。重载(Overload): 是一个类中多态性的一种表现,指同一原创 2021-06-14 16:24:22 · 167163 阅读 · 0 评论 -
C++赋值运算符重载_艾孜尔江撰
Colour& operator =(const Colour& right) { if (this == &right) { return *this; } this->r = right.r; this->g = right.g; this->b = right.b; return *this; }检查是否和自己的值相等(避免相等的时候也重新赋值);如果相等就直接返回它的值;如果不相等就赋..原创 2021-06-14 16:04:44 · 166734 阅读 · 0 评论 -
用#prgma使内存对齐_艾孜尔江撰
#pragma pack(push) struct CGVertex { Vector4 pos; Colour color; Texcoord tex; Vector4 normal; float rhw; // reciprocal of homogenous W Vector4 posInWorldSpace; };#pragma pack(pop)这里使用#pragma指令使得内存对齐,#pragma是非常有用的预处理指令。它的用法如下:#pragma原创 2021-06-14 15:07:57 · 119084 阅读 · 0 评论 -
C++异常处理类的设计与实现_艾孜尔江撰
#pragma once#include<exception>namespace RenderEngine { class BaseException : public std::exception { public: BaseException() : message("Error happened!") { printf("%s",message.c_str()); }; BaseException(const std::string& msg) :原创 2021-06-14 11:32:34 · 52718 阅读 · 0 评论 -
Device类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include<vector>#include "Light.h"#include "CGVertex.h"#include "ModelInfos.h"#include "Matrix.h"namespace RenderEngine { /// forward declaration (not avaible writing in this way in implemention code) class Transform;原创 2021-06-14 11:30:01 · 52657 阅读 · 0 评论 -
CVV裁剪类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include "CGVertex.h"#include <vector>namespace RenderEngine { // 在齐次裁剪空间对一个三角形进行裁剪,即此时组成三角形的顶点都应该满足 -w<=x<=w,-w<=xy=w,0=z<=w,w=ZCamera DX-Standard void ClipTriangle(CGVertex* p1, CGVertex* p2, CGVertex* p3);原创 2021-06-14 11:27:25 · 51317 阅读 · 0 评论 -
软光栅框架的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include<Windows.h>#include <windowsx.h> // GET_X_LPARAM => LOWORD; GET_Y_LPARAM => HIWORD#include<iostream>#include"Preperation.h"#ifdef _DEBUG#include "DebugHelper.h"#endif //_DEBUG#ifndef __Main__#d原创 2021-06-14 11:20:44 · 51018 阅读 · 0 评论 -
GeoBase类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include <sstream>#include <fstream>#include <vector>#include "Config.h"#include "CGVertex.h"#include "ModelInfos.h"namespace RenderEngine { std::vector<std::string> MakeLineIntoAnArray(std::string lin原创 2021-06-14 11:15:56 · 50970 阅读 · 0 评论 -
Light类的设计与实现_艾孜尔江撰
#pragma once#include "Vector.h"#include "Colour.h"#include "Math.h"#include "CGVertex.h"namespace RenderEngine { struct Light { Vector3 direction; Colour color; Light(const Vector3& direction, const Colour& color) :direction(direct原创 2021-06-14 11:11:16 · 51016 阅读 · 0 评论 -
ModelInfos类的设计与实现_艾孜尔江撰
#pragma once#include "Vector.h"#include "CGVertex.h"#include "Colour.h"namespace RenderEngine { struct ModelInfo { std::vector<CGVertex> vertexVec; std::vector<VerticeIndex> verteciesIndexVec; }; struct Face { int i1, i2, i3;原创 2021-06-14 11:09:32 · 50810 阅读 · 0 评论 -
Window类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include "LoadInAdvance.h"namespace RenderEngine { class Window { public: static Window& getInstance() { static Window s_instance; return s_instance; } int Initialize(int windowWidth, int windowHeight, LPCTSTR原创 2021-06-14 11:07:27 · 5206 阅读 · 0 评论 -
Transform类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include "Math.h"#include "Vector.h"#include "Matrix.h"#include "Light.h"#include "CGVertex.h"namespace RenderEngine { class Transform { public: static Transform& getInstance() { static Transform s_instance; re原创 2021-06-14 11:04:29 · 3913 阅读 · 0 评论 -
Matrix类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include <windows.h>#include "Vector.h"#include<iostream>namespace RenderEngine { float RadToDegree(const float& rad); float DegreeToRad(const float& degree); template<int nrows, int ncols> struct m原创 2021-06-14 10:58:41 · 3139 阅读 · 0 评论 -
Vector类的设计与实现_艾孜尔江撰
设计(头文件)#pragma once#include <iostream>namespace RenderEngine { class Vector2 { public: Vector2() : m_x(0), m_y(0) {}; Vector2(const Vector2& vecToBeCopied) { this->setX(vecToBeCopied.getX()); this->setY(vecToBeCopied.getY原创 2021-06-14 10:54:31 · 2917 阅读 · 0 评论 -
Vertex类的设计与实现_艾孜尔江撰
#pragma once#include "Vector.h"#include "Colour.h"#include "Textcoord.h"namespace RenderEngine {#pragma pack(push) struct CGVertex { Vector4 pos; Colour color; Texcoord tex; Vector4 normal; float rhw; // reciprocal of homogenous W Ve原创 2021-06-14 10:49:37 · 3054 阅读 · 0 评论 -
Math类的设计与实现_艾孜尔江撰
头文件#pragma once#include <iostream>#include <iostream>#include "Vector.h"#include "Textcoord.h"#include "Config.h"namespace RenderEngine {#define max(a,b) (((a) > (b)) ? (a) : (b))#define min(a,b) (((a) < (b)) ? (a) : (b)) s原创 2021-06-14 10:47:35 · 2930 阅读 · 1 评论 -
编译原理必备知识_艾孜尔江撰
原创 2021-06-12 22:17:04 · 3618 阅读 · 0 评论 -
C++中设置Main函数结束后执行的代码_艾孜尔江撰
#include <iostream>#include <cstdlib>using namespace std;int func1(),func2(),func3();int main(int argc,char * argv[]){ _onexit(func2); //函数注册时入栈,调用时出栈 _onexit(func1); _onexit(func3); cout<<"First Line"<&原创 2021-06-12 21:10:24 · 3718 阅读 · 0 评论 -
JS中的一些奇葩操作_艾孜尔江撰
let bRes = typeof (NaN)if (bRes) { // true console.log(bRes) // number}console.log(true + true + true + true + true) // 5console.log(true * 99) // 99console.log(true - true) // 0let l = (!+[] + [] + ![]).lengthconsole.log(l) // 9bRes = 0.1 +原创 2021-05-27 18:36:16 · 5792 阅读 · 0 评论 -
MD5算法_JS实现_艾孜尔江
function md5(string) { function md5_RotateLeft(lValue, iShiftBits) { return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); } function md5_AddUnsigned(lX, lY) { var lX4, lY4, lX8, lY8, lResult; lX原创 2021-05-04 08:48:08 · 14062 阅读 · 0 评论 -
MD5加密算法_艾孜尔江
#include<iostream>#include<string>using namespace std;#define shift(x, n) (((x) << (n)) | ((x) >> (32-(n))))//右移的时候,高位一定要补零,而不是补充符号位#define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z))原创 2021-05-04 08:41:45 · 13211 阅读 · 1 评论 -
文曲星猜数字算法_艾孜尔江撰
//姓名:艾孜尔江·艾尔斯兰 学号:17081160 时间:2018年5月25日 21:33 #include<iostream>#include<ctime>//时间 #include<cstdlib>//设置随机数种子 using namespace std;int main()//定义主函数 { int a[4],b[4],n,i=0,j,k,x,y;//声明并定义数组a,b内分别有4个数字 int number=0;//对声明的原创 2021-04-25 16:51:34 · 11913 阅读 · 0 评论 -
C++图书管理系统_艾孜尔江撰
#include<iostream>#include<conio.h> //控制台数据输入输出的函数#include<fstream>//文件流#include<iomanip> //控制数据输出格式#include<string.h>using namespace std; const int Maxr=100 ;//最多的读者数 const int Maxb=100; //最多的图书数const int Maxbor=5; /原创 2021-04-25 16:47:01 · 11792 阅读 · 2 评论 -
C#中线程安全的单例模式_艾孜尔江撰
using UnityEngine;/*by Alexander*/public enum UserState{ Online, Chatting, Pushing, Offline}public class StateController : MonoBehaviour{ private object m_mutex = new object(); private bool m_initialized = false; privat原创 2021-02-05 11:06:55 · 42120 阅读 · 0 评论 -
单例模式的错误用法_艾孜尔江撰
using UnityEditor;using UnityEngine;/*by Alexander*/public enum UserState{ Online, Chatting, Pushing, Offline}public class StateController : MonoBehaviour{ public UserState state; private static StateController stateContr原创 2021-01-26 22:39:49 · 33674 阅读 · 0 评论 -
OpenGL自检排错代码的实现及其思路_艾孜尔江撰
我们在编写OpenGL中的一些函数的时候经常会出现很奇怪的事情——明明所有的地方写的都好好的,但是最终在控制台上输出的结果确实一片黑色,然而没有任何地方提示我们该怎么办,在这样的情况下我们很难通过各种排错的方式去找到控制台上无法输出正确图像的原因,甚至会耗费掉至少半天的时间去肉眼查一个很不起眼的错误,比如,变量的类型在函数中传入错误,然而IDE工具也好,所使用的第三方库也好,甚至是OpenGl自身...原创 2020-03-02 21:47:54 · 49244 阅读 · 1 评论 -
C#分割字节数组获最尾部字节数组_艾孜尔江撰
public static byte[] GetMsgAtTail(int spieces, byte[] msg2Spilt) { int remainder = msg2Spilt.Length % spieces; byte[] result = new byte[(msg2Spilt.Length - remainder...原创 2020-02-12 09:38:45 · 49405 阅读 · 0 评论 -
C#合并两个字节数组的方法_艾孜尔江撰
public static byte[] addBytes(byte[] data1, byte[] data2, int validLen) { if (validLen <= 0) { throw new Exception("Data2 cannot be null!"); } if (...原创 2020-02-11 21:18:34 · 49708 阅读 · 0 评论