gpt4 book ai didi

c++ - 冲突 std::set 和 NTL::vec_ZZ

转载 作者:太空狗 更新时间:2023-10-29 21:49:07 24 4
gpt4 key购买 nike

我正在尝试将 std::set 用于从 NTL 库定义的任意长度整数 vector ,但由于某种原因它不起作用。它完全适用于库定义的 ZZ 整数:

#include <NTL/ZZ.h>
#include <NTL/vec_ZZ.h>
#include <set>

NTL_CLIENT

int main(void){


std::set<ZZ> foo;
foo.insert(to_ZZ(1)); //works without problems

std::set<vec_ZZ> vectorFoo;
vec_ZZ vec;
vectorFoo.insert(vec); //causes compiler to crash

return 0;
}

有谁知道为什么第一次插入有效而第二次无效?

最佳答案

std::set<T>std::less<T> 订购, 默认为 bool operator<(T,T) . ZZ确实定义了一个合适的 operator< (已订购)但 vec_ZZ没有。事实上,大多数 NTL 类都没有,甚至没有 ZZ_p .因此std::set<ZZ_p>同样无效。

关于c++ - 冲突 std::set 和 NTL::vec_ZZ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9032470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com