例如,在Python中,我可以这样做:
if 'a' in ['a', 'b', 'c']:
return 'Hi'
但是在C ++中,我不确定它的等效功能是什么。
答案 0 :(得分:11)
使用<algorithm>
中的std::find
:
std::vector<char> dynamic_array{'a', 'b', 'c'};
auto exists = std::find(dynamic_array.begin(), dynamic_array.end(), 'a')
!= dynamic_array.end();
如果您发现自己经常这样做,可以创建一个函数:
template<typename Container, typename T>
bool contains(Container const& container, T const& value) {
using std::begin;
return std::find(begin(container), end(container), value)
!= end(container);
}
答案 1 :(得分:2)
标准库容器实际上是用C ++的方式。
std :: vector是默认序列,但您也可以使用std :: set或其他,具体取决于您的用例。
如果您不知道使用哪一个,请坚持使用std :: vector,直到您有其他人的令人信服的理由为止。
此网站包含一些示例代码: http://www.cplusplus.com/reference/vector/vector/begin/
但是,我被告知以下网站更受同行评审: http://en.cppreference.com/w/cpp/container/vector