Initial Commit - Lesson 31 (Commit #1)
This commit is contained in:
38
Plugins/GameLiftServerSDK/ThirdParty/concurrentqueue/benchmarks/dlib/array/array_tools.h
vendored
Normal file
38
Plugins/GameLiftServerSDK/ThirdParty/concurrentqueue/benchmarks/dlib/array/array_tools.h
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright (C) 2013 Davis E. King (davis@dlib.net)
|
||||
// License: Boost Software License See LICENSE.txt for the full license.
|
||||
#ifndef DLIB_ARRAY_tOOLS_H_
|
||||
#define DLIB_ARRAY_tOOLS_H_
|
||||
|
||||
#include "../assert.h"
|
||||
#include "array_tools_abstract.h"
|
||||
|
||||
namespace dlib
|
||||
{
|
||||
template <typename T>
|
||||
void split_array (
|
||||
T& a,
|
||||
T& b,
|
||||
double frac
|
||||
)
|
||||
{
|
||||
// make sure requires clause is not broken
|
||||
DLIB_ASSERT(0 <= frac && frac <= 1,
|
||||
"\t void split_array()"
|
||||
<< "\n\t frac must be between 0 and 1."
|
||||
<< "\n\t frac: " << frac
|
||||
);
|
||||
|
||||
const unsigned long asize = static_cast<unsigned long>(a.size()*frac);
|
||||
const unsigned long bsize = a.size()-asize;
|
||||
|
||||
b.resize(bsize);
|
||||
for (unsigned long i = 0; i < b.size(); ++i)
|
||||
{
|
||||
swap(b[i], a[i+asize]);
|
||||
}
|
||||
a.resize(asize);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DLIB_ARRAY_tOOLS_H_
|
||||
|
||||
Reference in New Issue
Block a user