일반적으로 다른 형식의 배열보다 높은 성능을 제공하므로 blitz ++ 배열을 사용하려고합니다. blitz ++ 배열을지도의 키로 사용할 수 있습니까? 시도 중지도 용 키로 Blitz ++ 배열
컴파일되지 않습니다.
In file included from /usr/include/c++/4.6/string:50:0,
/usr/include/c++/4.6/bits/stl_function.h: In member function ‘bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = blitz::Array]’:
/usr/include/c++/4.6/bits/stl_function.h:236:22: error: cannot convert ‘blitz::BzBinaryExprResult, blitz::Array >::T_result {aka blitz::_bz_ArrayExpr, blitz::FastArrayIterator, blitz::Less > >}’ to ‘bool’ in return
<
운영자의 정의를 필요로하는 문제는 이것이다, 그렇다면,/내가 직접 정의해야 할 수 있습니다 여기에 오류가있어? 키가 std::less
을 사용하여 비교하는 std::map
문서 상태이어서
struct MyComparison
{
bool operator() (const blitz::Array<int, 1> &lhs, const blitz::Array<int, 1> &rhs) const
{
if (lhs.size() < rhs.size()) {return true;}
else if (lhs.size() > rhs.size()) {return false;}
else
{
for (int i=0; i<lhs.size(); i++)
{
if (lhs(i)<rhs(i)) {return true;}
else if(lhs(i)>rhs(i)) {return false;}
}
}
}
};
map<blitz::Array<int,1>,int, MyComparison> testmap;
"작동하지 않는다"고 말하면 작동하지 않는다고 말하는 것이 매우 중요합니다. –
컴파일러 오류에서 편집했습니다. 나는 정말로 그것이 무엇을 의미하는지에 관해 모른다. – RobVerheyen
당신 말이 맞아요. 네임 스페이스 표준을 편집했습니다. – RobVerheyen