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"

相关推荐
何以解忧,唯有..4 分钟前
预订酒店问题
算法
No8g攻城狮12 分钟前
【算法】什么是 DFS 与 BFS 及他们的区别
算法·深度优先·宽度优先
举手16 分钟前
Epoll模型
linux·c++·学习
zww894911121 分钟前
家政派单系统实战指南:从需求分析到智能调度算法落地
算法·需求分析
手写码匠34 分钟前
华为云Flexus+DeepSeek征文|Dify 多 Agent 评测实战:用 DeepSeek-R1 当裁判,打造多智能体系统的自动化质量保障体系
人工智能·深度学习·算法·aigc
Shadow(⊙o⊙)35 分钟前
Linux网络部分——TCP服务端、客户端架构分析多进程、多线程、线程池
c++·tcp/ip·架构
zh路西法1 小时前
【3D SLAM源码解读系列】(四) GTSAM与iSAM2——从回环约束到位姿图优化
c++·slam·gtsam·pgo·isam2
ZC跨境爬虫1 小时前
LeetCode 88. 合并两个有序数组(双指针详解 + Java Python 实现)
java·python·算法·leetcode
Nil2081 小时前
leetcode 238除了自身以外数组的乘积
数据结构·算法·leetcode
土司大王1 小时前
LeetCode hot100——最长连续序列
数据结构·算法·leetcode