STL является неотъемлемой частью C++, поэтому тот код и есть чистый C++.
Ну это уже оффтоп будет, но не является неотъемлемой частью! Не зря ведь это отдельной библиотекой поставляется!
std::vector<int> values; // 100000000 чисел
std::nth_element(values.begin(), values.begin() + 100, values.end()); // первые 100 чисел в values - минимальные
#include <algorithm>
#include <vector>
void fillValue( int &rValue)
{
static int n = 0;
n++;
rValue = n;
}
int main()
{
const size_t N = 10000;
const size_t M = 10;
std::vector<int> coll( N);
std::for_each( coll.begin(), coll.end(), fillValue); // заполняем
std::random_shuffle( coll.begin(), coll.end()); // рандомизируем, чтобы числа были не по порядку
std::vector<int> collMin( M, 0);
size_t collSize = coll.size();
size_t collMinSize = collMin.size();
// Здесь мы делали подготовительную работу по наполнению и эмуляции массивов, далее будет основная...
for( size_t n = 0; n < collSize; ++n)
{
if( n >= collMinSize)
{
int nMaxNumPos = 0;
for( size_t x = 0; x < collMinSize; ++x)
{
if( collMin[x] > collMin[nMaxNumPos])
nMaxNumPos = x;
}
if( collMin[nMaxNumPos] > coll[n])
collMin[nMaxNumPos] = coll[n];
}
else
{
collMin[n] = coll[n];
}
}
return 0;
}