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"

相关推荐
代码游侠5 分钟前
学习笔记——Linux内核与嵌入式开发3
开发语言·arm开发·c++·学习
yongui478346 分钟前
混凝土二维随机骨料模型 MATLAB 实现
算法·matlab
酉鬼女又兒12 分钟前
JAVA牛客入门11~20
算法
怎么没有名字注册了啊18 分钟前
C++ 进制转换
开发语言·c++
代码游侠22 分钟前
C语言核心概念复习(二)
c语言·开发语言·数据结构·笔记·学习·算法
金枪不摆鳍25 分钟前
C++常用关键字考察
c++
XX風34 分钟前
2.1_binary_search_tree
算法·计算机视觉
不想写bug呀1 小时前
买卖股票问题
算法·买卖股票问题
-Try hard-1 小时前
完全二叉树、非完全二叉树、哈希表的创建与遍历
开发语言·算法·vim·散列表
茉莉玫瑰花茶1 小时前
C++ 17 详细特性解析(4)
开发语言·c++·算法