Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
FeliveNdrell
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
#1

Проверка на принадлежность массиву - C++

24.02.2009, 21:32. Просмотров 2751. Ответов 4
Метки нет (Все метки)

Можно ли проверять значение переменой на принадлежность массиву одной командой/оператором? Вроде простой вопрос, но я перелопатил референсы на cplusplus по массивам, операторам и ни че не понял

Т.е.

C++
1
2
3
4
5
...
int i, array[4] = { 1, 2, 3, 4};
...
std::cin >>i;
if ( i "принадлежит/входит" array) { ... }; // Т.е например if ( i in array)
Т.е. меня интересует есть ли проверка на принадлежность значения именно одной командой? Или же каждый раз через луп пропускать весь массив?

Просьба не ртфмить сам понимаю что вопрос тупой но найти ответ не получилось.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2009, 21:32     Проверка на принадлежность массиву
Посмотрите здесь:

Проверка на принадлежность к алфавиту - C++
В общем увидел тему, решил помочь, не используя функции типа isalpha. В итоге получилась вот такая раскоряка, которая к тому же ещё и...

Проверка на принадлежность к типу - C++
Господа, подскажите, возможно ли проверять введенные данные на принадлежность к какому-либо типу данных, например число на int или float? ...

Проверка на принадлежность некоторому классу - C++
Здравствуйте! Как реализовать проверку объекта на принадлежность некоторому классу?

Проверка значения переменной на принадлежность интервалу - C++
Здравствуйте, собственно задача звучит так: "Даётся число N и нужно проверить принадлежит ли число N интервалу от 1 до 100 ( или же N>1 и...

Проверка на принадлежность элементов одного массива к другому - C++
Здравствуйте. Имеется 2 массива - in_string (содержит текст, который вводится пользователем) и alf(содержит буквы латинского алфавита)....

Проверка символа на принадлежность к буквам русского алфавита - C++
Дан символ. Проверить: является ли данный символ гласной буквой русского алфавита(независимо от регистра). Объясните, пожалуйста, как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,364
24.02.2009, 21:48     Проверка на принадлежность массиву #2
C++
1
2
3
4
5
6
std::set<int> array;
// ... тут его заполняем содержимым....
if (array.find(i) != array.end())
{
    // ... Ура!!! есть такое i в массиве, обработать!
}
FeliveNdrell
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
25.02.2009, 20:52  [ТС]     Проверка на принадлежность массиву #3
Спасибо.
Как я понял кроме использования "Associative containers" с их .find() другого способа нет? И если надо использовать обычный массив
C++
1
int array[] = {..}
то придеться самому расписывать проверку?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,364
25.02.2009, 21:29     Проверка на принадлежность массиву #4
Не обязательно самому, но сильно проще не будет. Можно еще так (основная идея сохраняется та же):
C++
1
2
3
4
5
6
int array[SOME_SIZE] = {..};
const int* array_end = array + SOME_SIZE;
if (std::find(array, array_end, i) != array_end)
{
    // нашли...
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2009, 21:50     Проверка на принадлежность массиву
Еще ссылки по теме:

Проверка введенного числа на принадлежность к числам Фибоначчи - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;cmath&gt; using namespace std; int main() { double x1=1; double x2=0; ...

принадлежность точек - C++
Всем привет. Подскажите, кто сможет. Нужно определить к какой из областей на графике относится точка. Координаты точек вводим с...

Принадлежность множеству - C++
На дельфи есть прекрасный оператор IN, который проверяет принадлежность множуству (я это так называю) То есть if Key IN then ... А...

принадлежность точки - C++
Нужно проверить принадлежность точки заштрихованной области. Не пойму как задавать, точнее что писать в ифе. Кто бы помог мне или...

Принадлежность полигону - C++
Здравствуйте даны координаты объекта (широта и долгота) необходимо определить положение точки относительно объекта (находится внутри,...

Принадлежность точки N-угольнику. - C++
Ребята, помогите, ПОЖАЛУЙСТА. На плоскости задается выпуклый N - угольник целочисленными координатами своих вершин в порядке обхода по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
FeliveNdrell
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
26.02.2009, 21:50  [ТС]     Проверка на принадлежность массиву #5
Спасибо, то что надо.
Правда при компиляции такого кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int array[3] = { 1, 2, 3 };
const int* array_end = array + 3;
 
int main()
{
    int i;
    std::cin >> i;
    if (std::find(array, array_end, i) != array_end) {
        std::cout << "Nice";
    }
    return 0;
}
g++ пишет "error: no matching function for call to `find(int[3], const int*&, int&)'"
как я понял он не воспринимает "array", в качестве параметра "find", как постоянный указатель на адрес памяти первого элемента массива. Поэтому я объявляю "array_end" как указатель на "int" а не "const int".
Yandex
Объявления
26.02.2009, 21:50     Проверка на принадлежность массиву
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru