gpt4 book ai didi

c++ - 在Vector类对象上调用push_back()方法时收到错误

转载 作者:行者123 更新时间:2023-12-02 10:52:27 24 4
gpt4 key购买 nike

在Vector类对象上调用push_back()方法时收到以下错误:error: request for member 'push_back' in 'edges.std::vector<_Tp, _Alloc>::operator[]<int, std::allocator<int> >(((std::vector<int>::size_type)a))', which is of non-class type 'int'我正在尝试使用邻接表创建图,但它不起作用

#include <bits/stdc++.h>

using namespace std;

/****************************************/
/// INPUT / OUTPUT
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
/****************************************/
/// GLOBAL DECLARATIONS
int n, m;
const int nmax = 100005;
vector <int> edges;
/****************************************/

inline void readInput()
{
f >> n >> m;
for(int i = 1 ; i <= m ; ++ i)
{
int a, b;
f >> a >> b;
edges[a].push_back(b);
}
}

int main()
{
readInput();
return 0;
}
很抱歉写得不好,这是我的第一个问题!

最佳答案

 edges[a].push_back(b);
edges[a]从 vector 中获取第a个元素。使用 vector<int>时,获得的值为 int。而且您不能在int上调用 push_back,因为 int类型没有成员函数 push_back
顾名思义, push_back在 vector 的末尾推送一个新值。因此,您必须使用 edges.push_back(b)
如果您打算在给定位置插入新值,则必须使用 std::vector::insert

关于c++ - 在Vector类对象上调用push_back()方法时收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64089096/

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