2012-04-20 46 views
3

C++に合理的に新しく、アプリケーションでベクトルを使用しようとしています。 私はヘッダファイルにBorland C++ Builder 6 - E2316 'ベクトル'は 'std'のメンバーではありません

#include <vector> 

を使用していますが、私はそれがこの行に失敗しコンパイルする場合:

std::vector<Shot> shot_list; 

エラーに注目E2316「ベクトル」が「STD」

のメンバーではありません

std ::を削除すると、未定義シンボル 'vector'コンパイラエラーメッセージが表示されます。本当にこれで失われた。

std::list<Shot> shot_list; 

を使用する前に、問題が発生していませんでした。私はあなたができる、ベクトルはであるその名前空間その明確なければ、これとThis Example

+0

あなたの 'testVect'の宣言が間違っています。 '(1)'部分を取り除くには、単に 'std :: vector testVect;'だけでなければなりません。 –

答えて

3

の間に違いが表示されていない私には

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

#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 

:ここ

はcomileに失敗した簡単な例でありますそれ自体では「ベクトル」を使用しないでください。 (namespace std;を使用して)おそらくあなたは、より多くのspesificヘルプのための関連コードを貼り付けることができます。

編集:

.hのベクトルを初期化することはできません。おそらくベクトルのresize()関数を使って.cppで行う必要があります。

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

    private: 
    std::vector<int> testVect; 

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

    }; 

    #endif 

変更を加える場合は、コンパイルを与えている簡単な例:これは(クラスのコンストラクタを使用して)あなたのためのオプションをすることができます。

関連する問題