Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/78: Рейтинг темы: голосов - 78, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
1

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

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

Author24 — интернет-сервис помощи студентам
Можно ли проверять значение переменой на принадлежность массиву одной командой/оператором? Вроде простой вопрос, но я перелопатил референсы на 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2009, 21:32
Ответы с готовыми решениями:

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

Проверка на принадлежность к типу
Господа, подскажите, возможно ли проверять введенные данные на принадлежность к какому-либо типу...

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

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

4
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
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
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 5
25.02.2009, 20:52  [ТС] 3
Спасибо.
Как я понял кроме использования "Associative containers" с их .find() другого способа нет? И если надо использовать обычный массив
C++
1
int array[] = {..}
то придеться самому расписывать проверку?
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
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
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
26.02.2009, 21:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2009, 21:50
Помогаю со студенческими работами здесь

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

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

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

Принадлежность к массиву
Есть ли функция, которая отвечает принадлежит ли элемент массиву? конкретно: надо написать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru