app/models
为什么这不起作用,它无法对我的数组for (Dodavatel *a : zoznamDodavatelov) {
for (Dodavatel *b : zoznamDodavatelov) {
if (a->getNazov() < a->getNazov()) {
Dodavatel *prem = a;
a = b;
b = prem;
}
}
}
答案 0 :(得分:2)
首先,您的容器中会显示Dodavatel *
类型的指针。但是,在循环中,指针a
和b
被声明为独立的局部变量。交换指针a
和b
不会影响数组的内容。
所以,问题是:为了“排序”数组,你应该重新排序什么?指针?或者这些指针指向的对象?
在前一种情况下,为了重新排序指针,您需要将循环变量声明为引用
for (Dodavatel *&a : zoznamDodavatelov) {
for (Dodavatel *&b : zoznamDodavatelov) {
在后一种情况下,您可以保留当前声明,但在if
内,您必须交换*a
和*b
,而不是a
和{{1 }}
其次,您的b
毫无意义,因为它会将if
与自身进行比较。
答案 1 :(得分:1)
if(a-&gt; getNazov()&lt; a-&gt; getNazov()){
这条线永远不会成真。