如何在结构的向量中使用push_back

how to use push_back in vector of a struct

本文关键字:push back 向量 结构      更新时间:2023-10-16

嘿,我创建了一个结构节点。它的一个字段之一是我想存储字符的向量(路径(。但是,当我尝试按下字符时,编译器在此范围中没有声明"错误:'路径"

#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
#include <list>
#include <climits>
using namespace std;
struct node {
    int weight;
    bool pizza;   // true an tin exo
    vector <char> path;
    int tetmimeni, tetagmeni; // i, j gia na vro geitones
    } ;
node a;
int main(){
 a.tetmimeni=0;   // create start node
 a.tetagmeni=0;
 a.weight=0;
 a.pizza=true;
 a.path= path.push_back('S');

a.path.push_back('S');

替换a.path= path.push_back('S');

原始代码试图将push_back的返回类型分配给a.path无效。

相反,您只想调用结构的std::vectorpush_back方法。

在您的代码中,节点是一个结构。路径是结构的一个元素。每当您需要访问struct元素时,都必须与结构的名称一起使用。

例如。a.pizza或A.当'a'是类型节点时。

类似地,您需要访问A.当您要访问向量路径时。即使您需要调用向量的功能。

也没关系。

您应该通过struct/class