【发布时间】:2014-02-17 13:30:56
【问题描述】:
在 c++ 中,我有一个数组,我正在尝试检查数组中是否存在某个元素。这是我的数组:
string choices[3] = {"a", "b", "c"}
如果用户输入存在于数组中,我希望它打印出 true,因此如果用户输入“b”,那么它将打印 true 并给我数组索引。这就像 in 或 find 的 Python 版本。我知道我可以使用 for 循环遍历所有元素,但是有没有更有效的方法?谢谢。
【问题讨论】:
-
看看
std::find。 -
没有什么比循环更有效的了(除非对数组进行排序或以其他方式构建以帮助搜索);但是有像
std::find这样的算法可能比循环更简洁。 -
我不认为你想要一个字符串数组。因为你得到了数组的所有缺点而没有任何优点,因为字符串仍然需要复制和运行时构造。要么使用 const char 指针数组来获得效率,要么使用字符串向量来获得安全和便利。
标签: c++ memory-efficient