C++ reverse_iterator 错误

C++ reverse_iterator error

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

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

错误:

  1. 应为“;”
  2. Error C2146 语法错误:缺少“;”在标识符 'rit'
  3. 之前
  4. 错误 C2065 'rit': 未声明的标识符

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

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

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

然后使用 reverse_iterator :

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

更新:

如果你输入 using namespace std; 那么当你编译你的代码时

你会发现list={}

的问题

因为listnamespace std中是reservedclass所以在定义[=17时不能作为变量名使用=].

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

另一种方式:

如果你不放 using namespace std;

将向量声明为 list

没问题

您可以按此方式完成,它将按您预期的方式编译和工作:

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

希望这能帮助您解决错误。