3d游戏引擎的Utilities模块实现下

2.Utilities

#pragma once

#define USE_STL_VECTOR 1

#define USE_STL_DEQUE 1

#if USE_STL_VECTOR

#include <vector>

#include <utility>

#include <iostream>

#include <algorithm>

namespace primal::utl

{

template<typename T>

using vector = std::vector<T>;

template<typename T>

void erase_unordered(T& v, size_t index)

{

if(v.size() > 1)

{

std::iter_swap(v.begin() + index, v.end() - 1);

v.pop_back();

}

else

{

v.clear();

}

}

}

#else

#include "Vector.h"

namespace primal::utl

{

template<typename T>

void erase_unordered(T& v, size_t index)

{

v.erase_unordered(index);

}

}

#endif

#if USE_STL_DEQUE

#include <deque>

namespace primal::utl {

template<typename T>

using deque = std::deque<T>;

}

#endif

namespace primal::utl

{

}

#include "FreeList.h"

相关推荐
luoganttcc1 小时前
Fast-LIVO2算法与其他激光雷达-惯性-视觉里程计算法相比有何优势?
算法
可可睡着辽3 小时前
C++链表双杰:list与forward_list
c++·链表·list
mu_guang_4 小时前
计算机算术8-浮点加法
算法·cpu·计算机体系结构
Jayden_Ruan5 小时前
C++计算正方形矩阵对角线和
数据结构·c++·算法
李白同学5 小时前
C++:list容器--模拟实现(下篇)
开发语言·数据结构·c++·windows·算法·list
一丢沙5 小时前
Verilog 硬件描述语言自学——重温数电之典型组合逻辑电路
开发语言·算法·fpga开发·verilog
z20348315206 小时前
C++抽象类
c语言·c++
竹子_237 小时前
《零基础入门AI:YOLOv2算法解析》
人工智能·python·算法·yolo
ajassi20008 小时前
开源 C++ QT Widget 开发(八)网络--Http文件下载
网络·c++·开源
卡尔曼的BD SLAMer8 小时前
计算机视觉与深度学习 | 基于深度学习的图像特征提取与匹配算法综述及MATLAB实现
人工智能·深度学习·算法·计算机视觉·matlab