【发布时间】:2014-05-06 13:25:40
【问题描述】:
我需要一种算法,它可以根据每对的第一个元素对一组对的数组进行排序。以下代码适用于 v_size
#include <iostream>
#include <algorithm>
#include <iterator>
#include <time.h>
using namespace std;
int main( int argc, char ** argv )
{
srand(time(NULL));
int v_size=524000;
std::pair<double, int> AB_large[v_size];
for( int i = 0; i<v_size; ++i)
{
AB_large[i].first = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
AB_large[i].second = i;
}
std::sort(AB_large, AB_large+v_size);
return 0;
}
【问题讨论】:
-
与地址空间的数量相比并不算大。但是比起 stack 的空间量...
-
你知道它至少有 6288000 字节吗?超过 5 GB 的内存。这可能比您拥有的堆栈空间还要多。
-
你将如何处理冲突?
-
@JohnDibling:你的意思是当有两个元素的值相同时?
-
@pawel_winzig:对。
标签: c++ algorithm sorting stl std-pair