/*
This file is a part of libcds - Concurrent Data Structures library
- (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+ (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
Source code repo: http://github.com/khizmax/libcds/
Download: http://sourceforge.net/projects/libcds/files/
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef CDSLIB_OPT_PERMUTATION_H
#define CDSLIB_OPT_PERMUTATION_H
-#include <stdlib.h> // rand, srand
+#include <cstdlib> // rand, srand
#include <random>
#include <algorithm> // std::shuffle
#include <numeric> // std::iota
do {
int i = gen;
//...
- } while ( gen.next() );
+ } while ( gen.next());
// Get other permutation
gen.reset();
do {
int i = gen;
//...
- } while ( gen.next() );
+ } while ( gen.next());
\endcode
The following \p Generator defined:
random_permutation( size_t nLength )
: m_nCur(0)
, m_nStart(0)
- , m_nMod( integer_type(nLength) )
+ , m_nMod( integer_type(nLength))
{
reset();
}
/// Resets the generator to produce new sequence
void reset()
{
- m_nCur = m_nStart = integer_type( rand() ) % m_nMod;
+ m_nCur = m_nStart = integer_type( std::rand()) % m_nMod;
}
};
/// Resets the generator to produce new sequence
void reset()
{
- m_nCur = m_nStart = integer_type( rand() ) & m_nMask;
+ m_nCur = m_nStart = integer_type( std::rand()) & m_nMask;
}
};