我知道有一种方法可以检查一个值是否在一个数组中,但有没有办法 检查一个值是不是?
此代码将检查每个索引,但在进入下一个索引时将忽略过去的索引。 (即是否有代码检查vary_result!="数组中的所有值"?)
int buffer; //all variables
int vary_result;
int range;
int minimum_value;
for(int j = 0; j < buffer; j++) {
if(vary_result == buffer_array[j]){
vary_result = rand() % range + minimum_value; // creates a random value and saves it at vary_result
};
};
cout << vary_result << endl;
答案 0 :(得分:4)
我知道有一种方法可以检查某个值是否在数组中,但有没有办法检查某个值是否不存在?
第二个与第一个相反:
auto begin = buffer_array;
auto end = buffer_array + buffer;
auto it = std::find(begin, end, value );
if( it == end ) // value not found which means none of the elements equal to value, which means value is not in array
// do whatever, but do not dereference it
答案 1 :(得分:2)
是的,有一种方法可以测试某个值是否不在数组中。我是这样做的:
bool valueInArray;
bool valueNotInArray = true;
int valueToTest = 10;
int valuesArray[] = [1, 2, 3, 5, 9];
for(int i = valuesArray.length(); i <= valuesArray.length(); i++) {
if(valueToTest == valuesArray[i])
notInIt == false;
}
if (notInIt == false)
valueInArray = true;
else
valueInArray = false;
基本上,我创建了两个布尔值,一个要测试的数字和一个数组。我通过for循环遍历数组,以测试数字是否在数组中。然后,我使用if / else设置与前一个布尔相反的另一个布尔值。这样,最终的布尔值反映了值是否不在数组中。