c++ - 错误: request for member 'clear' in 'graph' , which is of non-class type

标签 c++ vector compiler-errors

当我尝试编译以下代码时:

#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/

相关文章:

algorithm - 垂直于 3D 点集合的方向?

java - Java : cannot find symbol when compiling

C++ 理解类和构造函数

c++ - 在 Win32 中,HeapFree 不归还内存

C++ 无法添加到模板内的 vector

c++ - 错误 : 'vector' does not name a type/error: expected ',' or '...' before '<' token/error: 'vector' has not been declared

java - 曲面 View 不起作用

c++ - 使用pgc++编译器禁用OpenACC隐式编译指示生成

c++ - 如何查找季度月份而不是季度月份

c++ - C++ 中的碰撞检测方法