Initial commit: Final state of the master project

This commit is contained in:
2017-09-16 09:41:37 +02:00
commit 696180d43b
832 changed files with 169717 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
#pragma once
#include "../../core/Defines.h"
#include "../../inc/tbb/parallel_sort.h"
template<typename T>
struct Block
{
public:
Block() { mData = std::vector<T>(); }
Block(unsigned size)
{
mData = std::vector<T>(size);
}
Block(const std::vector<T>& data)
{
// Copy the given vector to mData
mData = std::vector<T>(data);
}
Block(const std::vector<T>& data, const size_t& startIndex, const size_t& endIndex)
{
mData = std::vector<T>(data.begin() + startIndex, data.begin() + endIndex);
}
~Block() {}
size_t size() const { return mData.size(); }
const T& Get(const size_t& i) const { return mData[i]; }
const std::vector<T>& GetData() const { return mData; }
void Set(const size_t& i, T v) { mData[i] = v; }
template<typename Compare>
void Sort(const Compare& comparer)
{
std::sort(mData.begin(), mData.end(), comparer);
}
template<typename Compare>
void ParallelSort(const Compare& comparer)
{
tbb::parallel_sort(mData.begin(), mData.end(), comparer);
}
bool operator==(const Block<T>& other) const
{
if (other.size() != this->size())
return false;
for (size_t i = 0; i < this->size(); i++)
if (other.Get(i) != this->Get(i)) return false;
return true;
}
const T& operator[](size_t i) const { return mData[i]; }
private:
std::vector<T> mData;
};