2015-02-19 5 views
-1

Например, мы имеем пример кодав реальном масштабе времени массив каст

cout << (((n%c == 0) && (n/c>=1)))?"Yes":"No"; 

на других языках, таких как питон, мы можем сделать это легко (понятие в CPP). как реализовать его в cpp?

cout << ... ["No","Yes"] [(((n%c == 0) && (n/c>=1)))]; 

Мы можем объявить массив «Нет», «Да». но как это сделать только во время написания вывода.?

+1

Работает ли первая строка на C++? Если да, то почему вы пытаетесь сделать эту строку похожим на другой язык (Python)? – PaulMcKenzie

+2

Вы утверждаете, что вторая версия проще? Я не могу сказать, что согласен. – Borgleader

+0

@PaulMcKenzie да, это работает. просто для того, чтобы делать эксперименты. – Daniel

ответ

1

Что об этом:

cout << vector <string> { "A", "B", "C" }[1]; 
+0

есть. определенно я искал.) – Daniel

0

В C++ 11, вы можете сделать это:

typedef std::string ARRAY[]; 

int main() 
{ 
    std::cout << ARRAY{"Yes", "No"}[0]; 
} 

Не уверен, что C++ 03 из-за отсутствия инициализации распорки.

+0

ye, C++ 11 удивительный. но я хочу версию C++ 03, если она существует. – Daniel

1

Попробуйте с компилятором оптимизаций, установленных на высокой:

char const * answer = "No"; 
if ((n % c == 0) && ((n/c) >= 1)) 
{ 
    answer = "Yes"; 
} 
cout << answer; 

Я уверен, что компилятор оптимизирует это так же, как ваш одной линии (с высокими настройками оптимизации). Я предпочитаю это как IMO, его легче читать и делать один шаг с помощью отладчика.

+0

ОК, разговор здесь не об оптимизации кода. но создавая новый постоянный массив реального времени, откуда мы можем получать значения. – Daniel

Смежные вопросы