2

私は学校の研究室で働いています、そしてそれが言う指示で:

Word_Listを定義するtypedefをエイリアス宣言に変更します(を使用)

私がグーグルで検索したところから、これを行う方法は次のように変更することです。

typedef vector<Word_Entry> Word_List;

に:

using Word_List = std::vector<Word_Entry>;

しかし、コンパイルすると、次のエラーが発生します。

error: expected nested-name-specifier before 'Word_List'

ほとんどのコード:

#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <vector>
#include <fstream>
#include <cctype>
#include <iomanip>

using namespace std;

struct Word_Entry
{
  string ord;
  unsigned cnt;
};

//typedef vector<Word_Entry> Word_List; <-This is what it used to look like
using Word_List = vector<Word_Entry>;


int main()
{
 ...
}

追加情報:

Yes, I am compiling with c++11 
Word_Entry is a struct that stores 2 variables
I have the line "using namespace std;" in the begining of my code
I'm using mingw compiler
4

1 に答える 1

7

あなたはここで解決策を見ることができます:

#include <string>
#include <vector>

using namespace std;

struct Word_Entry
{
  string ord;
  unsigned cnt;
};

//typedef vector<Word_Entry> Word_List; <-This is what it used to look like
using Word_List = vector<Word_Entry>;


int main()
{
}

構成エラーがあり、C++11仕様でコンパイルしていません。

于 2013-02-21T16:26:45.037 に答える