当我尝试编译以下代码时:
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
#define pii pair<int, int>
vector<pii> graph[100001];
int main() {
graph.clear();
return 0;
}
我收到此错误:
error: request for member 'clear' in 'graph', which is of non-class type 'std::vector<std::pair<int, int> > [100001]'
任何帮助表示赞赏。
最佳答案
在您的代码中,graph
是一个成对的100001 vector 数组,不是std::vector<T>
。
但是,您可以表示如下图:
#define pii std::pair<int, int>
std::vector<std::vector<pii> > graph(100001);
graph.clear();
如果真的真的想要使用原始数组,则可以效率很低来清除
graph
,如下所示:std::fill_n(graph, 100001, std::vector<pii>());
关于c++ - 错误: request for member 'clear' in 'graph' , which is of non-class type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512449/