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

Можно ли написать более оптимальный код, используя цикл while? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализация класса String http://www.cyberforum.ru/cpp-beginners/thread1505896.html
Доброго времени суток! Пишу свой класс String (учусь). И возник вопрос по реализации. Имеется определение класса: class String { private: char* str; int len; public:
C++ Посчитать сумму элементов в двумерном массиве и оформить результат в виде таблицы В двумерном массиве целых чисел посчитать сумму элементов: в каждой строке; в каждом столбце; одновременно по всем строкам и всем столбцам. Оформить следующим образом: 3 5 6 7 | 21 12 1 1 1 | 15 0 7 12 1 | 20 --------------------- 15 3 19 9 | 56 Добавлено через 1 минуту не могу понять ошибку в коде http://www.cyberforum.ru/cpp-beginners/thread1505869.html
C++ Как передать оператор "..." в макрос?
Как передать оператор "..." в макрос??? Пример: есть функция: void func(string str, int b, ...){ //blablabla } Хочу сделать макрос к этой функции: f(string, int, ...) func(string, int, ...);
C++ Задача Эйнштейна
Думаю все вы знаете задачу Эйнштейна: 1. Англичанин живет в красном доме. 2. Швед держит собаку. 3. Датчанин пьет чай. 4. Зеленый дом — налево от белого, и … 5. … его жилец пьет кофе. 6. Курильщик Pall Mall держит птичку. 7. Жилец дома, находящегося в середине, пьет молоко. 8. Жилец желтого дома курит Dunhill. 9. Норвежец живет в первом доме.
C++ Оператор преобразования http://www.cyberforum.ru/cpp-beginners/thread1505848.html
Приветствую всех! Есть у Р. Лафоре в книге "Объектно-ориентированное программирование в C++" такой пример: //ENGLCONV.cpp //Переводы длины из класса Distance в метры и обратно #include <iostream> using namespace std; //---------------------------------------------------------------------------// //Определение класса Distance...
C++ Округление числа до двух цифр Привет) Я только начинаю изучать С++, и вот столкнулся с очень важным вопросом... Как мне округлить число (double) до 2х цыфр после запятой? Например : Я пишу что мне нужно разделить (1/0.82) и мне выдает вот такой результат (1.21951). Как мне правильно прописать что бы вышло число (1.22)? Заранее благодарю!!!! подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 07:55     Можно ли написать более оптимальный код, используя цикл while?
rep plz, while вместо for нужен на паскале из-за того, что там счётчик цикла может только увеличиваться/уменьшаться строго на 1. for на c/c++ - оператор цикла вообще не со счётчиком, а с величиной, произвольно изменяемой в заголовке цикла и управляющей циклом, его гибкость позволяет полностью заменить while, которому остаются ровно три роли:
1. Цикл с условием выхода в теле. Прерывается оператором break.
2. Цикл с условием, зависящим только от величин, меняющихся только вне самого цикла. Прерывается путём изменения неких величин в другом потоке (возможно даже принадлежащем другому процессу), или при обработке прерывания, или исключения.
3. Бесконечный цикл. Если и прерывается, то только при снятии процесса, или выключении всего компьютера.
На c/c++ for и в этих случаях может заменить while, но в этих случаях он проигрывает по удобству, да и просто лучше соответствует формулировке задачи. В остальных же случаях удобней for, даже в тех, когда условие выхода из цикла сложней, чем сравнение величины с ограничением, для чего вообще то тоже предназначен while, а не for, но на c/c++ for даже в этих случаях применяется вместо while удобнее, чем сам while. Не говоря уж об аддитивных счётчиках с не единичным шагом, аддитивных счётчиках с переменным шагом, или мультипликативных счётчиках.
 
Текущее время: 21:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru