std::cin.ignore
Мой частоиспользуемы трюк:
std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
по очистке входящего потока от мусора, при подключении заголовка windows.h работать переставал и компилятор страшно ругался:
1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): warning C4003: not enough actual parameters for macro ‘max’ 1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2589: ‘(’ : illegal token on right side of ‘::’ 1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2143: syntax error : missing ‘)’ before ‘::’ 1>d:\documents\visual studio 2010\projects\oop_lab1_cpp\oop_lab1_cpp\oop_lab1_cpp.cpp(52): error C2059: syntax error : ‘)’
Выход оказался, как всегда, прост:
#include <windows.h> #undef max #include <limits>
Полный справочник по C++
Полный справочник по C++ (C++: The Complete Reference, 4th Edition )
4-е издание
Герберт Шилдт (Herbert Schildt)
Год выпуска: 2003
Изд-во: Диалектика-Вильямс
ISBN: 5-8459-0489-7
800 страниц
Формат: djvu
http://rs174.rapidshare.com/files/353769049/Pospps.rar
или
http://narod.ru/disk/19646038000/Pospps.rar.html
или
http://axis.bplaced.net/files/Pospps.rar
КМП поиск (Алгоритм Кнута Морриса Пратта)
Разъяснения напишу позже.
int Find (string str, string templ) { int i, j, strlen, templlen; strlen = str.length(); templlen = templ.length(); int *d = new int[templlen]; // Вычисление префикс-функции i = 0; j = -1; d[0] = -1; while (i < templlen-1) { while ((j >= 0) && (templ[j] != templ[i])) j = d[j]; ++i; ++j; d[i] = (templ[i] == templ[j]) ? d[j] : j; } // Поиск строки for (i = 0, j = 0; (i < = strlen-1) && (j <= templlen-1); ++i,++j) while ((j >= 0) && (templ[j] != str[i])) j = d[j]; delete[] d; // Если совпадение есть - возвращаем позицию, // если нет - -1 return (j == templlen) ? i - j : -1; }
Вызывается:
Find(*str, *tmpl)
Где:
string* str; //строка, в которой ищем string* tmpl; //строка, которую ищем
Быстрая сортировка (Pascal)
В дополнении к ЭТОЙ теме.
procedure quickSort(l,h: integer); var i,j,mid,tmp: integer; begin i := l; j := h; mid := mArray[(l + h) div 2]; repeat while mArray[i] < mid do inc(i); while mArray[j] > mid do dec(j); if (i < = j) then begin if (i < j) then begin tmp := mArray[i]; mArray[i] := mArray[j]; mArray[j] := tmp; end; inc(i); dec(j); end; until i > j; if l < j then quickSort(l, j); if i < h then quickSort(i, h); end;
Венгерская нотация (Hungarian Notation)
Автор: Charles Simonyi (Чарльз Симонии), Корпорация Microsoft, ноябрь 1999
Перевод: Nick E. Geht (Гехт Николай), Центр Интернет ОмГУ, декабрь 1999
Резюме документа
"Венгерское соглашение" об именах идентификаторов Чарльза Симонии.
С гордым видом упрямо идем на дно…
100% quest is completed
Part 1... ok
Part 2... ok
Part 3... ok
Part 4... ok
Congratulations! Now you Elf 80 lvl.
Проецирование тени на плоскость. Локальный источник.
Уравнение для бесконечно удалённого источника света может быть обобщено для случая, когда источник света находится на конечном расстоянии от объекта.
Проецирование тени на плоскость. Бесконечно удаленный источник света.
Есть два случая расчета проекции - при источнике света вблизи объекта и когда источник бесконечно удален.
Рассмотрим сперва второй случай.
String to DateTime DateTime to String
.NET Framework, C#
String to DateTime
// String to DateTime String MyString; MyString = "1999-09-01 21:34 PM"; //MyString = "1999-09-01 21:34 p.m."; //Depends on your regional settings DateTime MyDateTime; MyDateTime = new DateTime(); MyDateTime = DateTime.ParseExact(MyString, "yyyy-MM-dd HH:mm tt", null);
DateTime to String
//DateTime to String MyDateTime = new DateTime(1999, 09, 01, 21, 34, 00); String MyString; MyString = MyDateTime.ToString("yyyy-MM-dd HH:mm tt");
Ошибка линковки при объявлении класса
Итак, в процессе моего знакомства с таким замечательным инструментом как класс столкнулся с проблемой. Точнее даже с двумя.