首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冲突std::set和NTL::vec_ZZ

冲突std::set和NTL::vec_ZZ
EN

Stack Overflow用户
提问于 2012-01-27 19:13:59
回答 1查看 310关注 0票数 3

我试图对NTL-Library中定义的任意长度整数向量使用std::set,但由于某种原因,它不起作用。它可以很好地处理由库定义的ZZ整数:

代码语言:javascript
复制
#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;
}

有没有人知道为什么第一个插入可以,第二个不能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-27 22:05:05

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9032470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档