Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现mysql的DISTINCT关键字以使用线程并行地获得不同的值 我想用C++的HASMAP或unGordEnMult.E/P>创建一个功能明确的MySQL关键字。_C++_Mysql_Parallel Processing - Fatal编程技术网

如何实现mysql的DISTINCT关键字以使用线程并行地获得不同的值 我想用C++的HASMAP或unGordEnMult.E/P>创建一个功能明确的MySQL关键字。

如何实现mysql的DISTINCT关键字以使用线程并行地获得不同的值 我想用C++的HASMAP或unGordEnMult.E/P>创建一个功能明确的MySQL关键字。,c++,mysql,parallel-processing,C++,Mysql,Parallel Processing,我必须并行地执行此操作,例如,最初我在数组中有输入整数 现在我必须在数组中找到不同的数字(并行)使用hashmap并将数组中的所有整数放在那里。但是,在将它们添加到地图之前,请添加一个额外的检查,这样,如果它们存在,就不会重新添加它们。最后,对映射中的所有整数进行迭代,得到唯一的项: 伪代码: for (int i=0..array.length){ if (hashmap.contains(array[i]) continue; hashmap.put(i,i); } for (it

我必须并行地执行此操作,例如,最初我在数组中有输入整数


现在我必须在数组中找到不同的数字(并行)

使用hashmap并将数组中的所有整数放在那里。但是,在将它们添加到地图之前,请添加一个额外的检查,这样,如果它们存在,就不会重新添加它们。最后,对映射中的所有整数进行迭代,得到唯一的项:

伪代码:

for (int i=0..array.length){
  if (hashmap.contains(array[i]) continue;
  hashmap.put(i,i);
}

for (iterator over map) {
  print("unique values: " + *it)
}

如果原始数组没有更改,并且假定
哈希映射
具有可用的
g++
扩展名:

hash_map<int, int> distinct_elems;
for (int i = 0 ; i < num_elems ; ++i)
{
    distinct_elems[i] = i;
}
或者,如果您只是想在hashmap中查找值:

hash_map<int, int>::iterator de_itr = distinct_elems.find(value);
if(de_itr != distinct_elems.end())
{
    <do some work>
}
hash_map::迭代器de_itr=distinct_elems.find(值);
if(de_itr!=distinct_elems.end())
{
}

您可以从任意数量的线程执行此操作,而无需锁定,因为数据现在基本上是恒定的。

一旦加载数据,您的数组是否会更改?不,数组不会更改,我必须并行处理数组。根据此代码,这是一个迭代解决方案。我怎么能把这个对位呢code@bigbang给每个线程一个数组块,并与所有线程共享映射。但是,您需要一个允许并发的映射
hash_map<int, int>::iterator de_itr = distinct_elems.find(value);
if(de_itr != distinct_elems.end())
{
    <do some work>
}