【发布时间】:2020-01-04 12:48:48
【问题描述】:
我定义了这个多索引,由于大量条目而占用了大量内存,我想根据一些决策检查从中删除一些条目,这可能吗?如何实现? 我正在执行以下操作,但在擦除时崩溃,附加堆栈跟踪
typedef boost::multi_index::multi_index_container<
Node,
boost::multi_index::indexed_by<
boost::multi_index::hashed_non_unique<
boost::multi_index::tag<IndexByName>,
boost::multi_index::member<
Node, std::string, &Node::_name
>
>,
boost::multi_index::hashed_unique<
boost::multi_index::tag<IndexByObj>,
boost::multi_index::const_mem_fun<
Node, unsigned long long, &Node::key
>
>
>
> NameObjMultiIndex;
typedef typename NameObjMultiIndex::template index<IndexByName>::type NameIndex;
typedef typename NameObjMultiIndex::template index<IndexByObj>::type ObjIndex;
NameObjMultiIndex _cache;
std::unordered_map<N, bool>::type ChangeObjMap; // Templatised
ChangeObjMap _changeObjMap;
擦除:
ObjIndex& objIndex = _cache.template get<IndexByObj>();
typename ChangeObjMap::iterator cit = _changeObjMap.begin();
cout<< "cache size before erase: " << _cache.size() << std::endl;
for(;cit != _changeObjMap.end();cit++)
{
if(!cit->second){
typename ObjIndex::iterator nit = objIndex.find((unsigned long long)cit->first.get());
objIndex.erase((unsigned long long)cit->first.get());
//if(nit != objIndex.end())
//nameIndex.erase(nit->_name);
}
}
堆栈跟踪:
Thread 1 (Thread 0x2aaabe1bd8e0 (LWP 10598)):
#0 0x000000000a12994a in snps_boost_1_68_0::multi_index::detail::hashed_index_base_node_impl<std::allocator<char> >::prior() ()
#1 0x000000000a12ba51 in snps_boost_1_68_0::multi_index::detail::hashed_index_node_alg<snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::is_last_of_bucket(snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >*) ()
#2 0x000000000a13044f in void snps_boost_1_68_0::multi_index::detail::hashed_index_node_alg<snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::unlink<snps_boost_1_68_0::multi_index::detail::default_assigner>(snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >*, snps_boost_1_68_0::multi_index::detail::default_assigner&) ()
#3 0x000000000a12f589 in snps_boost_1_68_0::multi_index::detail::hashed_index_node_alg<snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::unlink(snps_boost_1_68_0::multi_index::detail::hashed_index_node_impl<std::allocator<char> >*) ()
#4 0x000000000a56d2cc in snps_boost_1_68_0::multi_index::detail::hashed_index<snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, snps_boost_1_68_0::hash<unsigned long long>, std::equal_to<unsigned long long>, snps_boost_1_68_0::multi_index::detail::nth_layer<2, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::mpl::v_item<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, snps_boost_1_68_0::mpl::vector0<mpl_::na>, 0>, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::unlink(snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>*) ()
#5 0x000000000a565c9d in snps_boost_1_68_0::multi_index::detail::hashed_index<snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, snps_boost_1_68_0::hash<unsigned long long>, std::equal_to<unsigned long long>, snps_boost_1_68_0::multi_index::detail::nth_layer<2, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::mpl::v_item<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, snps_boost_1_68_0::mpl::vector0<mpl_::na>, 0>, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::erase_(snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>*) ()
#6 0x000000000a55d734 in snps_boost_1_68_0::multi_index::detail::hashed_index<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, snps_boost_1_68_0::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, snps_boost_1_68_0::multi_index::detail::nth_layer<1, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::mpl::v_item<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, snps_boost_1_68_0::mpl::vector0<mpl_::na>, 0>, snps_boost_1_68_0::multi_index::detail::hashed_non_unique_tag>::erase_(snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>, snps_boost_1_68_0::multi_index::detail::hashed_non_unique_tag>*) ()
#7 0x000000000a551213 in snps_boost_1_68_0::multi_index::multi_index_container<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >::erase_(snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>, snps_boost_1_68_0::multi_index::detail::hashed_non_unique_tag>*) ()
#8 0x000000000a5448d2 in snps_boost_1_68_0::multi_index::detail::index_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >::final_erase_(snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>, snps_boost_1_68_0::multi_index::detail::hashed_non_unique_tag>*) ()
#9 0x000000000a53be45 in snps_boost_1_68_0::multi_index::detail::hashed_index<snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, snps_boost_1_68_0::hash<unsigned long long>, std::equal_to<unsigned long long>, snps_boost_1_68_0::multi_index::detail::nth_layer<2, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, snps_boost_1_68_0::multi_index::indexed_by<snps_boost_1_68_0::multi_index::hashed_non_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByName, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::strip_escape_name_extractor, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::hashed_unique<snps_boost_1_68_0::multi_index::tag<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, snps_boost_1_68_0::multi_index::const_mem_fun<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, unsigned long long, &(Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node::key() const)>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::mpl::v_item<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::IndexByObj, snps_boost_1_68_0::mpl::vector0<mpl_::na>, 0>, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>::erase(snps_boost_1_68_0::multi_index::detail::hashed_index_iterator<snps_boost_1_68_0::multi_index::detail::hashed_index_node<snps_boost_1_68_0::multi_index::detail::index_node_base<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node, std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_unique_tag>, snps_boost_1_68_0::multi_index::detail::bucket_array<std::allocator<Monet::MdmNameCacheImplMIWithStripEscape<Monet::MdmIndexWrapper<Monet::MdmPort> >::Node> >, snps_boost_1_68_0::multi_index::detail::hashed_index_global_iterator_tag>) ()
【问题讨论】:
-
你能建议@joaquín-m-lópez-muñoz
-
需要更多的上下文才能看到发生了什么。请在使用它们之前声明您的变量。 (
_cache是什么?_changeObjMap?) -
@JaMiT _cache 是多索引容器,即 NameObjMultiIndex _cache 我想删除一些元素以减少容器占用的 malloc 内存,所以,如果我从一个索引中删除,它是否也会从第二个索引中删除?此外,我在擦除时崩溃了,请参阅代码
-
我看到您发布的代码,它使用了尚未声明的变量。所以对我没用。 请在使用前声明您的变量。
-
@JaMiT 更新变量
标签: c++ memory boost multi-index boost-multi-index