我正在尝试将来自 boost 和标准的 unordered_set 用于应用程序,目的是找到位置,即该集合中某些元素的索引。结果之间存在细微差别。根据这个简单的程序,对 boost 中的元素进行了反转。问题出在哪里?
简单的“假设”代码:
#include <iostream>
#include <iterator>
#include <unordered_set>
#include <boost/unordered_set.hpp>
//using boost::unordered_set;
using std::unordered_set;
using std::distance;
int main()
{
unordered_set<int> Set;
int sz = 10;
for(int k=0;k<sz;k++)
Set.insert(k);
unordered_set<int>::iterator ind_searched = Set.find(8);
unordered_set<int>::size_type indx = distance( Set.begin(),
ind_searched );
std::cout << " Index of element is "
<< indx << std::endl;
return 0;
}
有了提升,我得到了
Index of element is 1
并使用标准的 unordered_set 我得到
Index of element is 8
我编译两者
g++ sgi_stl_1.cc -I /home/utab/external_libraries/boost_1_48_0/ -std=c++0x