-2

我对 Java 和 Eclipse 有一些经验,但我是 C++ 新手,并试图自学。如果这是一个简单的问题,或者已经被问过的问题,我深表歉意(尽管我环顾了一会儿。)我在 Windows 8 上。

我正在尝试制作一个排序的链表(这相对不重要。)我得到:

Info: Nothing to build for Working.

这是我的代码:

/*
*  SortedList class
*/
#include <string>
#include <fstream>
#include<iostream>
#include "SortedList.h"

using namespace std;

//the ListNode Structure
struct ListNode {
    string data;
    ListNode *next;
};

//the head of the linked list and the pointer nodes
ListNode head;
ListNode *prev, *current;

// insert a string into the list in alphabetical order
//now adds a string to the list and counts the size of the list
int Insert(string s){
//make the new node
ListNode temp;
temp.data = s;
//the node to traverse the list
prev = &head;
current = head.next;
int c = 0;
//traverse the list, then insert the string
while(current != NULL){
    prev = current;
    current = current->next;
    c++;
}

//insert temp into the list
temp.next = prev->next;
prev->next = &temp;

return c;
}

//Return the number of times a given string occurs in the list.
int Lookup(string s){
return 0;
}

//prints the elements of the list to ostream
void Print(ostream &output){
}

int main( int argc, char ** argv ) {
cout << Insert("a") << endl;
cout << Insert("b") << endl;
cout << Insert("d") << endl;
}

这是我的标题:

using namespace std;

#ifndef SORTEDLIST_H_
#define SORTEDLIST_H_

class SortedList {
  public:
    // constructor
    SortedList();
    // modifiers
    int Insert(string s);
    // other operations
    int Lookup(string s) const;
    void Print(ostream &output) const;

  private:
    struct ListNode {
       string data;
       ListNode *next;
    };
    // pointer to the first node of the list
    ListNode head;
    ListNode *prev, *current;
};
#endif /* SORTEDLIST_H_ */

任何帮助将不胜感激。

4

1 回答 1

-1

为什么不使用 std::deque (在标头双端队列中)?它可能具有您正在寻找的所有功能,并且经过全面测试和优化。如果您需要具有更多功能的双端队列,请创建一个继承自它的类并添加您需要的功能。查看http://en.cppreference.com/w/cpp/containe并选择最适合您需求的容器。

作为一般建议,如果您需要的东西已经在一些好的和稳定的库(STL、boost、GSL、Armadillo 或类似)中可用,最好使用它而不是自己从头开始编写+调试+优化。作为一般建议,将精力集中在应用程序独有的代码上,并重用已经完成的代码(但只有经过良好测试,不要使用蹩脚的半熟库)。

于 2013-07-25T12:25:13.123 回答