Hi,

Say if, like in the following example, you want to check if a variable has one of two sets of values. Is there a way of doing this, but without writing out "a1 = 12, a2 = ...." etc.?

I'm thinking you could do it with two arrays- one for the first set of values then another for the second set. Then you would just assign one of those arrays to a vector and check if c is any of the values in the vector. But I'm wondering, would it be possible to do this with using only 1 array or vector? Something like:

Code:

vector<int> v1;
if (b == 1)
v1 = {12, 15, 11, 17, 18 };
if (b == 2)
v1 = {21, 25, 27, 26, 28 };

Or is there any other more efficient way to do the program?

Thanks.

Code:

#include <iostream>
using namespace std;
int main()
{
int a1, a2, a3, a4, a5, b, c;
cout << "press 1 for set 1 and 2 for set 2";
cin >> b;
if (b == 1)
{
a1 = 12;
a2 = 15;
a3 = 11;
a4 = 17;
a5 = 18;
}
else if (b == 2)
{
a1 = 21;
a2 = 25;
a3 = 27;
a4 = 26;
a5 = 28;
}
cout << "Enter a number to check if it's in the set selected";
cin >> c;
if (c == a1 || c == a2 || c == a3 || c == a4 || c == a5)
cout << "You entered a value that is in set " << b;
else
cout << "Number not in set " << b;
}