-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 (ヘッダー deque 内) を使用しないのはなぜですか? おそらくあなたが探しているすべての機能を備えており、完全にテストされ、最適化されています。もう少し機能を備えた両端キューが必要な場合は、それを継承するクラスを作成し、必要な関数を追加します。http://en.cppreference.com/w/cpp/containeにアクセスして、ニーズに最適なコンテナを選択してください。

一般的なアドバイスとして、必要なものが適切で安定したライブラリ (STL、boost、GSL、Armadillo など) で既に利用可能である場合は、自分でゼロから記述 + デバッグ + 最適化するよりも、それを使用する方がはるかに優れています。一般的なアドバイスとして、あなたのアプリケーションに固有のコードに注力し、すでに行われたものを再利用してください (ただし、十分にテストされている場合に限り、下手くそな中途半端なライブラリは使用しないでください)。

于 2013-07-25T12:25:13.123 に答える