gpt4 book ai didi

c++ - 通过 map.equal_range 问题 interator

转载 作者:行者123 更新时间:2023-11-28 07:48:14 26 4
gpt4 key购买 nike

当我使用 map.equal_range() 时,我在迭代 map 时遇到问题..我的编译器说没有's_it = Krange.std::pair<> 中的 'operator=' 不匹配,'operator != '?? 也不匹配我很困惑,不知道为什么以下是我的一段代码

void Pdb2Cluster_test
(
multimap <string, unsigned> & pigAccmap,
multimap <unsigned, proteininfo> & map2
)
{
// CArgs args = GetArgs();
//AnsiString v = diff_b;
multimap<string , unsigned>::iterator imp;

multimap<string,proteininfo>::iterator s_it;
multimap<string, pdbbinfo>::iterator ip;
// set<string>::iterator idp;
unsigned pig_b;
int start, stop;
// int mststar, mstto;
unsigned cluster, domgi;
string pdb_ele;


pdb_ele = "3ST9A";

imp = pigAccmap.find(pdb_ele);
if (imp != pigAccmap.end())
{ pig_b = imp->second;

std::pair<multimap<unsigned, proteininfo>::iterator, multimap<unsigned,proteininfo>::iterator> Krange;
Krange = map2.equal_range(pig_b);
for (s_it = Krange.first; s_it != Krange.second; s_it++)
{
domgi= s_it->second.domgi;
start= s_it->second.seqstar;
stop= s_it->second.seqstop;
cout<<"\t"<<cluster<<"\t"<<pdb_ele<<"\t" <<pig_b<<"\t"<<domgi<<"\t"<<start<<"\t"<<stop<<endl;
// myfile<<cluster<<"\t"<<pdb_ele<<"\t" <<domgi<<"\t"<<start<<"\t"<<stop<<endl;

}
imp++;
}
}

我只需要迭代第二个 multimap ,所以忽略第一个循环的 map.find()我提到了http://www.cplusplus.com/reference/map/multimap/equal_range/ ....

最佳答案

map2 的类型是std::multimap<unsigned, proteininfo> .

s_it 的类型是std::multimap<std::string, proteininfo>::iterator .

这些不匹配。

你可以通过使用一些 typedef 来省去一些麻烦,比如

typedef std::multimap<std::string, proteininfo> protein_map_type;

关于c++ - 通过 map.equal_range 问题 interator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405582/

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