【发布时间】:2011-10-03 04:14:00
【问题描述】:
我在名为 myNamespace 的命名空间中有一个模板函数(如下):
template <typename setX>
void getRandomItems(NaturalNumber size, setX &random, setX &items)
{
assert(size <= items.size());
//set of randomly selected indices for items
set<NaturalNumber> index;
NaturalNumber r, i;
while(index.size() < size)
{
r = unifRand(0,items.size()-1);
index.insert(r);
}
typename setX::iterator it, sit = items.begin();
for(i = 0, it = index.begin(); it != index.end(); it ++)
{
//find the r-th elt in index
r = *it;
for(; i < r; i ++)
sit++;
random.insert(*sit);
}
}
但是,每当我调用此函数时,我都会收到以下错误:
generic.h:在函数“void myNamespace::getRandomItems(NaturalNumber, setX&, setX&) [with setX = std::set<:basic_string> >, NaturalNumber = long unsigned int]”中: 合成图.C:87:55: 从这里实例化 generic.h:74:32: 错误: 'it = index.std::set::begin [with _Key = long unsigned int, _Compare = std::less我已经尝试了所有组合但没有运气,请帮助我!!!
【问题讨论】:
-
I have tried all combinations: 告诉我们你尝试了哪些组合
标签: c++ compiler-errors function-templates template-function