Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множества 
:(
    Опции темы
Zerony
Дата 1.2.2011, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 21.12.2008

Репутация: нет
Всего: нет



Всем привет. Никто не в курсе, есть ли в С++ множества, аналогичны как в Delphi? 

Нужен аналог такого выражения: Result:=Ch in ['+','-','*','/']
Оно написано в Delphi, хочу такое же на С++. 

Заранее спасибо. 
PM MAIL   Вверх
Фантом
Дата 1.2.2011, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(Zerony @  1.2.2011,  21:49 Найти цитируемый пост)
Нужен аналог такого выражения: Result:=Ch in ['+','-','*','/']
Оно написано в Delphi, хочу такое же на С++. 

В STL, в принципе, есть, но без необходимости, пожалуй, ими не стоит пользоваться (если все дело только в такой записи).
PM   Вверх
volatile
Дата 1.2.2011, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Если аналог приведенного выражения, то можно использовать strchr
Если не найдено вернет NULL, если найдено, указатель на символ.

Я правда не знаю что возвращает в делфи выражение Ch in ['+','-','*','/']
Если логическую единицу, то вот полный аналог:
Код

bool Result = !!strchr("+-*/", Ch );

PM MAIL   Вверх
alexvs11
Дата 2.2.2011, 00:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



Код

#include <set>
#include <algorithm>
#include <iostream>

char szArr[] = {'+','-','*','/'};

int main(){
  std::set<char> mSet( szArr, szArr+sizeof(szArr)/sizeof(szArr[0]) );
  char chSym = '-';
  if( mSet.end() != mSet.find( chSym ) ){
    std::cout << "ok" << std::endl;
  }else{
    std::cout << "wrong element" << std::endl;
  }
}


но не думаю, что это то, что вы ожидали smile 
PM MAIL   Вверх
Zerony
Дата 2.2.2011, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 21.12.2008

Репутация: нет
Всего: нет



Всем спасибо. Все способы записал, опробую на практике! 
PM MAIL   Вверх
xvr
Дата 2.2.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



В С++ Builder есть реализация Delphi множеств в виде класса (Set из sysset.h)
Синтаксис конечно немного другой

PM MAIL   Вверх
taiven
Дата 5.2.2011, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: 2
Всего: 9



Код

bool func(char ch)
{
    const std::string s("+-*/");
    return s.find(ch) != std::string::npos;
}

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.