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"

相关推荐
故事和你916 小时前
洛谷-数据结构1-1-线性表1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论
脱氧核糖核酸__6 小时前
LeetCode热题100——53.最大子数组和(题解+答案+要点)
数据结构·c++·算法·leetcode
脱氧核糖核酸__7 小时前
LeetCode 热题100——42.接雨水(题目+题解+答案)
数据结构·c++·算法·leetcode
王老师青少年编程8 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:数列分段 Section I
c++·算法·编程·贪心·csp·信奥赛·线性扫描贪心
王老师青少年编程8 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:分糖果
c++·算法·贪心算法·csp·信奥赛·线性扫描贪心·分糖果
_日拱一卒8 小时前
LeetCode:2两数相加
算法·leetcode·职场和发展
py有趣8 小时前
力扣热门100题之零钱兑换
算法·leetcode
南無忘码至尊8 小时前
Unity学习90天 - 第 6天 - 学习协程 Coroutine并实现每隔 2 秒生成一波敌人
学习·unity·c#·游戏引擎
董董灿是个攻城狮8 小时前
Opus 4.7 来了,我并不建议你升级
算法
leaves falling8 小时前
C++模板进阶
开发语言·c++