2012-04-26 8 views
0

私はこのようなのVisual C++ 2005で文字列のベクトルを定義しようとしています:のVisual Studio C++のtypedefベクトル誤差

void main() 
{  
    typedef vector<std::string> temp; 

をしかし、私はエラーを取得しています:

error C4430: missing type specifier - int assumed 

私が含まれていますstring.h

何故その理由が考えられますか? 何か間違っていますか?

+1

ベクターも含めましたか?なぜ 'string'に' std :: 'を使用しますが、' vector'には使用しませんか?私は 'std :: vector'も期待しています。 –

+0

私はベクトルを含んでいます。 私はnamespace stdを使って宣言しました。だから、std ::を使うのかどうかは関係ありません。 – tumchaaditya

+0

もし 'namespace std;'を使っているのであれば、 'typedef vector temp;と言うか' typedef vector <:: std :: string> temp; 'と言う必要があります。名前は 'std'です。 –

答えて

2

using namespace std;の場合は、typedef vector<string> temp;と言うか、typedef vector<::std::string> temp;と言う必要があります。これは、名前空間std内にstdという名前のサブネームスペースが存在する可能性があるためです。