c++ - 将 std::find 与 std::string 数组一起使用时出现问题
问题描述
我正在尝试运行这个比较器:
if (std::find(movements->begin(), movements->end(), commandBuffer) != movements->end())
和:
const std::string movements[8] = {"north", "south", "east", "west", "n", "s", "e", "w"};
哪里commandBuffer
是std::string
。
在 MinGW32 9.2.0 上,我得到以下信息:
错误:'operator==' 不匹配(操作数类型为 'const char' 和 'const std::__cxx11::basic_string')
解决方案
要么使用std::cbegin
and std::cend
,要么将您的数组更改为std::array
:
std::array<const std::string, 8> movements = {"north", "south", "east", "west", "n", "s", "e", "w"};
const std::string commandBuffer = "north";
if (std::find(movements.begin(), movements.end(), commandBuffer) != movements.end())
std::cout << "Found!" << std::endl;
推荐阅读
- php - 如何在 php 中创建同步网页,以便数据库更改立即反映在浏览器中?
- hyperledger-fabric - 作曲家休息服务器中的无效 JSON 数据错误
- java - CountDownLatch 等待超时在测试用例中不起作用
- c# - Xamarin.GooglePlayServices.Basement 构建失败
- tfs - 允许特定用户查看/仅打开错误项
- delphi - 在旧式 Delphi 类上通过 id 调用虚拟构造函数
- java - org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;)Lorg/openqa/selenium/json/JsonOutput; 由于 java.io.IOException: Incomplete document
- bash - xargs 在输出到新行时在 echo 语句后添加空格
- c# - .Net 中的 ODBC 事务连接到 PostGresQL 数据库。插入在事务中时不显示
- php - 无法导出 SQL 文件