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

Функции сравнения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив: вычислить сумму элементов, которые стоят по периметру матрицы http://www.cyberforum.ru/cpp-beginners/thread646633.html
#include <iostream> using namespace std; int main () { setlocale (LC_ALL, "Russian"); int k,m,i,j,t,sum; int n; cout << "Введите размерность" << endl; cin >> n; int...
C++ Ошибка String subscript out of range Здравствуйте. Написал на Dev C++ 4.9.9.2 программу которая открывает фаил и кладет все в буфер. Содержание файла: gehen v test*kommen v test*sagen v test Дальше функцией sort() берет символ и... http://www.cyberforum.ru/cpp-beginners/thread646615.html
Конструктор копий. Оператор присваивания C++
В классе есть массив char (не динамический) размером 40 байт. Вопрос1: нужно ли для такого класса определять конструктор копий или перегружать оператор присваивания или вполне подойдёт конструктор...
C++ Error C2065: 'SetRegistryKey' : undeclared identifier
void CContDlg::OnButton3() { CMySwitch dlg; dlg.DoModal(); int nResponse = dlg.DoModal(); if (nResponse == IDOK) { SetRegistryKey(("Cont"));
C++ Описать методы шаблонного класса http://www.cyberforum.ru/cpp-beginners/thread646557.html
#include<iostream> #include<time.h> using namespace std; template <typename T> struct Elem { T *mass; int razmer; Elem * next, * prev;
C++ Метод золотого сечения Нужно найти точку минимума унимодальной функцыи f(x) на отрезке с точностью эпсилон методом золотого сечения и модифицырованым методом Фибоначчи. f(x)=x^2+2*((x*lgx/e)-2) a=1,5 b=2 ... подробнее

Показать сообщение отдельно
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
04.09.2012, 16:34
Цитата Сообщение от bgm313 Посмотреть сообщение
Может быть, как -то можно сделать так, чтобы не требовалось проверять весь массив?
Я когда делал класс больших целых чисел объявлял еще атрибут класса, который хранил количество значащих разрядов ( где один разряд = 1 элемент массива). Сравнение при этом выглядит проще. Обход всего массива будет произведен только в случаях, когда количество значащих разрядов будет равно максимальному числу разрядов, и когда сравниваемые операнды различаются меньше чем на максимальное значение разряда.

Например, сравнение <:
1. сравниваем знаки
2. при равенстве знаков сравниваем количество значащих разрядов
3. при равенстве количества значащих разрядов сравниваем разряды числа начиная с самого значащего (при первом же несоответствии делаем соответствующий вывод)

И при таком раскладе сравнение с нулем тоже будет очень простой операцией. Нуль это либо число с количеством значащих разрядов равным нулю, либо число с одним разрядом, значение которого равно нулю, в зависимости от представления нуля.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.