-5

我正在尝试为我的向量使用 reverse_iterator,显然这行代码导致 3 个错误。

#include <iostream>    
#include <vector>
using namespace std;
vector<string> list={};
vector<string> reverse_iterator rit = list.rbegin();

错误:

  1. 预期一个';'
  2. 错误 C2146 语法错误:缺少 ';' 在标识符“rit”之前
  3. 错误 C2065 'rit':未声明的标识符

我正在使用 Visual Studio 2015 控制台应用程序。

4

1 回答 1

1

你应该首先定义你的向量变量:

std::vector<string> mylist (5);

然后使用 reverse_iterator :

std::vector<string>::reverse_iterator rit = mylist.rbegin();

更新:

如果您using namespace std;在编译代码时放置 then

你会发现问题在于list={}

因为list保留类,namespace std所以在定义时不能将其用作变量名vector

要解决这个问题,你可以简单地给它另一个名字,比如mylist.

其他方式:

如果你不放using namespace std;

将你的向量声明为没问题list

你可以这样做,它会按照你的预期编译和工作:

  std::vector<std::string> list={};
  std::vector<std::string>::reverse_iterator rit = list.rbegin(); 

我希望这能帮助你解决你的错误。

于 2017-03-12T07:16:23.233 回答