我有一个类,它有一个拥有n个集合的向量成员。我想通过公共成员函数访问此成员,将项目插入到集合中并查找集合中的项目。但是编译时出错:引用非静态成员函数必须调用。C++是我引用一个函数或数据成员? (必须调用非静态成员函数引用)
但我真的很困惑,因为我不认为我引用了一个成员函数,我想我试图访问一个向量成员。
我在做什么错?
#include <vector>
#include <set>
#include <iostream>
class Foo {
public:
std::vector <std::set<int>> entities(int x);
int find(int x, int y);
void insert(int x, int y);
Foo(int x);
};
Foo::Foo(int x) {
std::vector <std::set<int>> entities(x);
};
void Foo::insert(int x, int y) {
entities[x].insert(y); // << This causes error
};
int Foo::find(int x, int y) {
std::set<int>::iterator iter = entities[x].find(y); // << This causes error
int found;
if (iter != entities[x].end()) { // << This causes error
found = *iter;
}
return found;
};
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
ö你的错误是什么? –
最好提供一个MCVE(请参阅帮助)。使我们更容易查明问题。 –
“entries”和“entities”是同一个东西还是两个不同的东西? –