草庐IT

c++ - 将某些内容存储到 unordered_map 时出现浮点异常

我正在使用unordered_map作为C++中的HashMap,但每当我尝试在其中存储任何内容时,我都会得到:Floatingpointexception:8谁能指出错误是什么?以下是我如何初始化我的map(table_entry只是一个结构):std::tr1::unordered_mapforwarding_table;然后我在做一个条目:unsignedshortdest_id=0;table_entry*entry=(table_entry*)malloc(sizeof(table_entry));forwarding_table[dest_id]=entry;我的结构定义是

c++ - 将本地结构传递给 count_if

我正在尝试将匿名结构传递给std::count_if,但编译失败。当我尝试编译时(使用g++4.5.3,不使用c++03或c++11扩展),我在fail()方法中遇到错误,但是pass()方法没有那个错误。Infunction‘voidfail()’:Test.cpp:34:24:error:nomatchingfunctionforcallto‘count_if(std::map::iterator,std::map::iterator,fail()::&)’如果我将结构设为命名结构,我会遇到类似的错误。我不明白为什么在函数外部和内部声明它应该有所不同。我错过了什么?#include

c++ - 将 QComboBox::currentIndexChanged(int) 连接到 QSignalMapper::map()

我想弄清楚如何在Qt5中实现这一点:connect(qcombobox,SIGNAL(currentIndexChanged(int),qsignalmappe,SLOT(map()));我试过这个:connect(comboBox,static_castsignalMapper,&QSignalMapper::map);但是编译器提示没有匹配的参数。我知道QSignalMapper::map()信号没有参数,但我不知道它如何使用旧语法。 最佳答案 试试这个,它对我有用connect(comboBox,static_cast(&QC

c++ - 使用 Eigen::Map<Eigen::MatrixXd> 作为 Eigen::MatrixXd 类型的函数参数

简而言之,问题是如何通过一个Eigen::Map反对一个期待一个函数Eigen::MatrixXd对象。长话短说:我有这个C++函数声明voidnpMatrix(constEigen::MatrixXd&data,Eigen::MatrixXd&result);连同这个实现voidnpMatrix(constEigen::MatrixXd&data,Eigen::MatrixXd&result){//Justdos.th.withargumentsstd::cout我想使用numpy.array作为参数从python调用这个函数。为此,我使用了一个用c++编写的包装器函数voidpyM

c++ - 通过 std::tuple<...> 实现 map() 和 each() - 将索引作为模板参数传递给仿函数

经过几年的Web开发,我再次使用C++(14)工作,并决定通过模板元编程获得一些“动态类型函数的乐趣”。我已经实现了map和each在元组上:templatevoidtuple_each_internal(Tupleconst&tuple,Funcfunc,index_sequence){autores={(func(get(tuple)),nullptr)...};}template::value>>voidtuple_each(Tupleconst&tuple,Funcfunc){tuple_each_internal(tuple,func,Indices());}structde

c++ - 线程安全,在C++中有序映射/哈希?

在C++中实现线程安全有序(note1)映射/哈希的最佳方法是什么?又是一种快速查找的数据结构(又称队列),不同线程可以在不同线程之间进行迭代,偶尔插入或删除元素,而不会干扰其他线程的Activity?std::map不是线程安全的,它的操作也不是原子的-尽管只有擦除会使迭代器无效将整个函数包装在整个map类中并不能解决问题-您可以在那里使用松散的迭代器来指向一个节点,该节点将被另一个线程擦除。它应该锁定并防止删除,直到当前线程是唯一引用它的线程为止,或者使用UNIX文件系统样式的“悬挂但删除后仍然有效的引用”方法tbb::concurrent_hash_map设计为线程安全的,但其迭

c++ - 合并多个 map

我已经在boost邮件列表中询问过这个问题,但我似乎并不清楚自己的意图。也可能是我没有完全理解如何才能做到这一点。我想在hana中合并多个map,看下面的代码示例:constexprautom1=hana::make_map(hana::make_pair("key1"_s,hana::type_c),hana::make_pair("key2"_s,hana::type_c));constexprautom2=hana::make_map(hana::make_pair("key3"_s,hana::type_c),hana::make_pair("key4"_s,hana::typ

c++ - auto const & map 迭代器的类型是什么? C++

我需要修复我的旧项目中的一些错误,我认为这是重构部分代码的最佳时机。我有一个具有以下结构的map:std::map>ComponentMap;在我需要遍历一些底层子map的某个地方,我使用了以下内容:for(std::map::iteratoriter=ComponentMap[compNameString].begin();iter!=ComponentMap[compNameString].end();++iter){//somecodeif(IsComponentOfType(iter,sCOMP_PRINCIPAL))iter->second->GetComponentValu

c++ - std::unordered_map:多线程插入?

我有一堆数据(一个巨大的0到ULLONG_MAX之间的整数列表),我想提取所有唯一值。我的方法是创建一个unordered_map,使用整数列表值作为键,使用一次性bool值作为映射值。我迭代列表并为每个键插入一次性值。最后,我迭代map以获取所有唯一键。非常简单。但是,我的列表非常大(数以亿计),我想对这个进程进行多线程处理。我知道一种天真的线程方法是行不通的,因为unordered_map插入会影响底层数据结构,因此它不是线程安全的。并且在每次插入周围添加锁会很慢,并且可能会抵消任何线程加速。然而,大概不是每次插入都会改变数据结构(只有那些不能适应现有分配桶的插入?)。有没有办法在

c++ - map 复杂查找操作

我想做以下事情:定义字符串和任何类型的对象(可以是列表、整数-任何对象)之间的映射。map的键可以如下所示(值同样不重要):"AAA/123"==>1"AAA/"==>2"BBB/"==>3"CCC/*"==>4"CCC/123"==>5现在,诀窍是我想在给定以下字符串的情况下找到正确的值:"AAA/123"应该给1。“AAA/111”应该给2。“CCC/111”应该给4。“CCC/123”应该给5。“BBB/AAA/123”应该给3。知道我如何使用C++和可能的STL/boost做到这一点吗? 最佳答案 这是litb答案的一个变体