首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stxxl断言‘`it != root_node_.end()’失败

stxxl断言‘`it != root_node_.end()’失败
EN

Stack Overflow用户
提问于 2012-03-22 23:01:03
回答 1查看 140关注 0票数 0

当我试图在stxxl映射中插入一个元素时,我收到了这个断言失败的错误。

整个断言错误如下:

/usr/include/stxxl/bits/containers/btree/btree.h:470: std::

std::stxxl::btree::KeyType = e_my_key,DataType =无符号int,CompareType = comp_type,无符号int RawNodeSize =16384 u,无符号int RawLeafSize = 131072u,PDAllocStrategy = stxxl::SR,stxxl::btree::btree::value_type =std:结束语:‘`it != root_node_.end()’失败。已中止

有什么想法吗?

编辑:这是代码片段

代码语言:javascript
复制
void request_handler::handle_request(my_key& query, reply& rep)
{
    c_++;

    std::cout << "Received query " << query.content << " by thread " << boost::this_thread::get_id() << ". It is number " << c_ << "\n";
    strcpy(element.first.content, query.content);
    element.second = c_;
    testcache_.insert(element);

    STXXL_MSG("Records in map: " << testcache_.size());
}

Edit2这里有更多的细节(我省略常量,例如MAX_QUERY_LEN)

代码语言:javascript
复制
struct comp_type : std::binary_function<my_key, my_key, bool>
{
    bool operator () (const my_key & a, const my_key & b) const
    {
            return strncmp(a.content, b.content, MAX_QUERY_LEN) < 0;
    }
    static my_key max_value()
    {
            return max_key;
    }
    static my_key min_value()
    {
            return min_key;
    }
};

typedef stxxl::map<my_key, my_data, comp_type> cacheType;


cacheType testcache_;

request_handler::request_handler()
:testcache_(NODE_CACHE_SIZE, LEAF_CACHE_SIZE)
{
    c_ = 0;
    memset(max_key.content, (std::numeric_limits<unsigned char>::max)(), MAX_QUERY_LEN);
    memset(min_key.content, (std::numeric_limits<unsigned char>::min)(), MAX_QUERY_LEN);

    testcache_.enable_prefetching();

    STXXL_MSG("Records in map: " << testcache_.size());
}
EN

回答 1

Stack Overflow用户

发布于 2012-03-22 23:07:35

这里有一个想法:使用伐兰。在诊断程序中可能是非本地错误时,它通常非常有用。也就是说,您可能会在途中的某个地方损坏您的容器(一个常见的错误是迭代时擦除)。因此,失败的断言很可能是由于您对容器做了一些错误,但可能不是在程序死亡之前。增值可以帮助您找到无效的内存访问,等等。

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

https://stackoverflow.com/questions/9831812

复制
相关文章

相似问题

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