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

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

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

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

24.02.2009, 21:32. Просмотров 2799. Ответов 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)
Т.е. меня интересует есть ли проверка на принадлежность значения именно одной командой? Или же каждый раз через луп пропускать весь массив?

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
24.02.2009, 21:48 #2
C++
1
2
3
4
5
6
std::set<int> array;
// ... тут его заполняем содержимым....
if (array.find(i) != array.end())
{
    // ... Ура!!! есть такое i в массиве, обработать!
}
1
FeliveNdrell
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
25.02.2009, 20:52  [ТС] #3
Спасибо.
Как я понял кроме использования "Associative containers" с их .find() другого способа нет? И если надо использовать обычный массив
C++
1
int array[] = {..}
то придеться самому расписывать проверку?
0
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
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)
{
    // нашли...
}
1
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".
0
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++
Нужно проверить принадлежность точки заштрихованной области. Не пойму как задавать, точнее что писать в ифе. Кто бы помог мне или...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.02.2009, 21:50
Ответ Создать тему
Опции темы

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