排序不起作用c ++

时间:2017-04-01 23:59:17

标签: c++ sorting

app/models

为什么这不起作用,它无法对我的数组for (Dodavatel *a : zoznamDodavatelov) { for (Dodavatel *b : zoznamDodavatelov) { if (a->getNazov() < a->getNazov()) { Dodavatel *prem = a; a = b; b = prem; } } }

进行排序

2 个答案:

答案 0 :(得分:2)

首先,您的容器中会显示Dodavatel *类型的指针。但是,在循环中,指针ab被声明为独立的局部变量。交换指针ab不会影响数组的内容。

所以,问题是:为了“排序”数组,你应该重新排序什么?指针?或者这些指针指向的对象?

在前一种情况下,为了重新排序指针,您需要将循环变量声明为引用

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()){

这条线永远不会成真。