我定义了一个结构,使用 unsigned long long int 作为键来存储映射中的结构。 我有另一个函数可以在映射中找到结构并对结构进行一些修改。
但是我得到了这样的错误:
‘struct std::_Rb_tree_iterator<std::pair<const long long unsigned int, sStatics> >’ has no member named Latency
谁能告诉我错误是从哪里来的? 以下是我的代码结构:
嗯:
#include <map>
struct sStatics;
extern std::map<unsigned long long int, sStatics> wsmStaticsMap;
A.cpp:
#include <map>
std::map<unsigned long long int, sStatics> wsmStaticsMap;
struct sStatics
{
std::string atcs;
uint32_t Latency;
std::vector<unsigned long int> lostWSM;
unsigned long int wrongOrderCount;
};
static void function_statics(){
std::map<unsigned long long int,sStatics>::iterator it;
it = wsmStaticsMap.find(atcs);
if (it != wsmStaticsMap.end()){
it->Latency++;
}
}
最佳答案
你必须写(it->second).Latency
。它返回一个键值对。您需要先选择值,然后选择其中的属性。
您可以查看 reference
关于c++ - 在结构图上使用 find(),得到 "has no member named XXX",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32494166/