我试图将bitset参数传递给下面的函数,但是我无法成功:
这里是代码:错误:没有符合条件的函数调用search(std::bitset<100000000ul>&, int, unsigned int, unsigned int)
#include <bitset>
#define ELEMENTS 100000000
#define TRANSITION_POINT 500
using namespace std;
template<unsigned int N>
unsigned int search(bitset<N> &array, int value, unsigned int low, unsigned int high) {
unsigned int middle;
.........
}
int main() {
const unsigned int NUMBER_OF_ELEMENTS = ELEMENTS;
bitset<NUMBER_OF_ELEMENTS> b;
unsigned int i = 0;
i = TRANSITION_POINT;
while(i < NUMBER_OF_ELEMENTS) {
b[i] = 1;
i++;
}
pos = search(b, (int)1, (unsigned int)0, (unsigned int)NUMBER_OF_ELEMENTS);
return 1;
}
我尝试调试代码,但找不到问题所在。请有人帮忙。
pos
之后)。你使用的是哪个编译器/版本?(我怀疑你的编译器的std::bitset<>
中,大小参数是unsigned long
- 根据错误消息中的 "ul" 后缀可见 - 你应该将模板更改为也使用unsigned long
)。 - undefinedbitset<NUMBER_OF_ELEMENTS> b;
这一行代码。 - undefined