【发布时间】:2015-07-18 14:06:42
【问题描述】:
我正在编写一个带有 Artikel 类型列表的程序,列表中有几个元素,每个元素包含 4 个数据成员,2 个 int 和 2 个 string。该列表按 int artikelNr 排序,下面的函数应该在考虑其 artikelNr 的正确位置向列表中添加一个新的 Artikel。虽然由于列表是 Artikel 类型并且我要比较的数据成员是 Int 我得到了错误:'->' 的基本操作数具有非指针类型'Artikel'|
我已经尝试将迭代器 *it 添加到 int 类型的列表中,但它不起作用,因为列表是 Artikel 类型。
void Lager::lagg_till_registret(Artikel funkArtikel)
{
bool check = false;
list<Artikel>::iterator it = listaMedArtiklar.begin();
while(check == false){
if(funkArtikel.artikelNr < (*it)->artikelNr){
listaMedArtiklar.insert (it,funkArtikel);
check = true;
}
else
it++;
}
}
【问题讨论】:
-
试试
it->artikelNr。 (*it不是指针。) -
@molbdnilo 如果
Artikel是一个指针怎么办!? -
@DieterLücking "'->' 的基本操作数具有非指针类型 'Artikel'" 有点暗示它不是。
-
@molbdnilo 我试过了->artikelNr 并且我不再有关于类型的错误,但是,我得到了其中两个:错误:无效使用成员函数(你忘记了'( )' ?)|
-
@EmilCoder 如果
artikelNr是一个函数,你需要"()",但是你没有写任何。