【发布时间】:2016-08-02 21:05:39
【问题描述】:
typedef struct
{
string idArtigo;
string tituloArtigo;
string veiculoPublicacao;
vector<string> autores;
}Publicacao;
我有一个像这样的向量:
vector<Publicacao> pub(1000);
和:
multimap<int,Publicacao> multimapa;
multimap<int,Publicacao>::iterator it;
我正在使用插入添加:
multimapa.insert ( pair<int,Publicacao>(i,p[i]));
multimapa.insert ( pair<int,Publicacao>(i,p[j]));
问题是,当我打印时,我无法打印结构的向量 autores,只能打印其他变量,例如:
for (it=multimapa.begin(); it!=multimapa.end(); ++it)
{
arquivoResultado<<"Codigo Unico: "<< (*it).first<<endl; //works
arquivoResultado<<"Titulo: "<<(*it).second.tituloArtigo<<endl; //works
arquivoResultado<<"Autores: "<<endl; // works
for(i=0; (*it).second.autores.size(); i++) // NOT WORKS
{
arquivoResultado<<(*it).second.autores[i]<<" "; //FAIL EXECUTION
}
arquivoResultado <<"\nVeiculo: "<<(*it).second.veiculoPublicacao<<endl;
}
只是结构的向量在执行时间上有问题,我不知道为什么。
【问题讨论】:
-
你是不是缺少一些语法?喜欢
i < (*it).second.autores.size(); -
甚至没有 arquivoResultado
-
你能提供一个minimal reproducible example吗?
-
等等,它现在工作了: or(int i=0; i
-
并且不要在 C++ 中使用
typedef struct
标签: c++ vector insert multimap