行搜索和冒泡排序的问题

时间:2014-12-25 13:57:59

标签: c++ vector bubble-sort

我用c ++创建一个程序,需要一些人将它们放在一个带有名称和年龄的向量中,然后我得到了所有代码,但是我无法正确编译它。

到目前为止这是我的代码

#include <iostream>
#include <string>

using namespace std;

class person
{
public:
    string name;
    int age;
    void SetInfo(const string _name, int _age) //Här läggs den viktigaste informationen in
    {
        name = _name;
        age = _age;
    }
    int getAge(){ return age; }
};


void bubblesort(person mylist[], int n) // Här startar Bubblesort funktionen
{
    for (int i = 1; i<n; i++)
    {

        for (int j = 0; j<i - 1; j++)
        {
            if (mylist[j].getAge() > mylist[j + 1].getAge())
            {
                person temp;
                temp = mylist[j];
                mylist[j] = mylist[j + 1];
                mylist[j + 1] = temp;
            }
        }
    }
}
int main() //Program start
{
    person mylist[4]; //lista på personer
    mylist[0].SetInfo("Johan", 25);
    mylist[1].SetInfo("Nathalie", 20);
    mylist[2].SetInfo("Jessica", 60);
    mylist[3].SetInfo("Coco", 54);


    //anropar bubblesort()
    bubblesort(mylist, 4);


    int index = Linesearch(mylist, 25);

    if (index == -1)
        cout << "person ej funnen!";
    else
        cout << "personen du letade efter " << mylist[index].name;
    cin.get();
    return 0;
    system("pause");
}

我认为这个问题是我的知识,因为我刚接触编程并且只用了4个星期。我把这段代码放在一起,从我自己和在网上找到的例子。所以每个答案都会帮助我了解更多:)

编辑: 仍然相同的代码在这里添加了错误消息。  50 39 C:\ Skrivbordet \ Skola \ ccxcxcxcvx.cpp [错误]&#39; Linesearch&#39;未在此范围内声明

1 个答案:

答案 0 :(得分:2)

C ++程序开始时相当空白,除了main之外没有任何功能可以使用。 (还有更多可以说的。我肯定评论会指出这一点。;))你包括<iostream>string的标题,所以你可以使用在中声明的所有函数他们,这是一件好事!已经为你写了很多东西;例如,您无需了解如何将文本写入屏幕。

所有其他功能都由您自己编写 - 这也是 的好事!毕竟,编程语言的乐趣在于你不能做你想要的东西,因为“它没有任何功能”。

您已经编写(或可能已复制)一个自定义函数:bubblesort。从那时起,您可以在任何地方使用它。它不在标准头文件中,但编译器将其视为一般功能;它所要做的就是从上到下阅读你的代码,并在遇到它们时存储新函数的名称。

问题所在:Linesearch是函数的名称。编译器假定因为它后跟一个带括号的参数列表。因此,它在标准标题中查找Linesearch,发现它不在那里,然后查看源代码 - 但仍然找不到它。普雷斯托!错误。

解决方案是使用现有的标准函数来执行您需要的函数(如果有的话)(我无法回想起),或者自己编写函数并将其放在源代码中main以上的某处。 (它需要¹高于使用它的第一个函数,在这种情况下是main。)

¹我在那里只讲了半个真相;但我想在依次扩展 之前,最好先阅读C ++入门。