3

C ++はかなり新しいので、アプリケーションでベクトルを使用しようとしています。使ってます

#include <vector>

ヘッダーファイルにありますが、コンパイルすると次の行で失敗します。

std::vector<Shot> shot_list;

エラーE2316「ベクトル」は「std」のメンバーではないことに注意してください

次にstd::を削除すると、Undefinedsymbol'vector'コンパイラエラーメッセージが表示されます。これで本当に途方に暮れています。使用に問題はありませんでした

std::list<Shot> shot_list; 

ベクトルを使用する前に。

これは、コマイルに失敗した簡単な例です。

//---------------------------------------------------------------------------

#ifndef testclassH
#define testclassH
//---------------------------------------------------------------------------
#include <vector>
class TestClass {
        private:
        std::vector<int> testVect(1); // removing std:: and adding using namespace std; below the include for the vector it still fails to compile;

};

#endif

私には、これとこの例の間に違いは見られません

4

1 に答える 1

3

ベクトルがどの名前空間にあるかを明確にしないと、「ベクトル」を単独で使用することはできません。(名前空間stdを使用;)おそらく、より具体的なヘルプのために関連するコードを貼り付けることができます。

編集:

.hのベクトルを初期化することはできません。おそらくベクターのresize()関数を使用して、.cppでそれを行う必要があります。これは、(クラスのコンストラクターを使用して)オプションにすることができます。

    #ifndef testclassH
    #define testclassH
    //---------------------------------------------------------------------------
    #include <vector>
    class TestClass {

    private:
    std::vector<int> testVect;

    public:
    TestClass()
    {
        testVect.resize(4);
    }

    };

    #endif

与えた簡単な例は、変更を加えるとコンパイルされます。

于 2012-04-28T19:26:10.050 に答える