Операция с присваиванием 0 именно в такой форме тут совершенно лишняя, т.к. fgets на предыдущем шаге и так уже записала 0 в конце строки. Если бы этого не было, то strlen не смогла бы вычислить корректную длину строки.
Я бы еще понял что-то подобное: search_for[79]=0; - подстраховка от переполнения буфера, хотя и это излишне, если понадеяться на корректную работу fgets. Но ведь, скорее всего, мы не будем проверять каждую реализацию fgets, поэтому такой оператор кажется более логичным, чем тот что приведен в примере.
По ссылке ниже целая пачка рецептов split: stackoverflow.com/questions/236129/split-a-string-in-c
Метода split нет в std::string, на сколько я знаю. Возможно, вы пользуетесь объектом String не из стандартной библиотеки.
Проинтегрировать тут не выйдет, поскольку сигнал конечный, а для интегрирования подавай бесконечный.
Если вы хотите получить спектр сигнала в частотной области, то вам нужно быстрое преобразование Фурье (FFT). Можете начать отсюда: www.fftw.org
Во многих математических библиотеках есть реализации, например в Intel Math Kernel Library.
У операции разыменования приоритет ниже, чем у операции выбора элемента по указателю, т.е. в вызове *root->next.push_back(node); порядок операций такой *(root->)next.push_back(node);, что, видимо, не то что вы хотели, расставьте скобки так: (*root)->next.push_back(node); и будет счастье.
А вообще, какой смысл в On_BG передавать указатель на указатель? Судя по коду достаточно просто указателя, а еще лучше - ссылки.
Ссылка это не адрес, адрес это указатель.
n_Name объявлено видимо, как String *n_Name - т.е. n_Name - указатель, поэтому обращаясь c.n_Name вы получаете адрес объекта.
Воспринимайте ссылки как псевдонимы (алиасы) существующих переменных. Обращаться со ссылками следует как с обычными переменными, а не как с указателями.
Хорошо бы в editString в конце еще дописывать '\0'. В таком виде как сейчас работает, пока массивы в стеке, стоит их начать выделять динамически и это у вас всплывет.
И заменить "new" на другое имя, т.к. new является служебным словом в С++, а от Си до С++ один шаг фактически :)
В первом случае сначала приводится 1 к double явно, потом неявно 3 в double, т.к. первый аргумент операции дабл, а потом выполняется деление двух даблов.
Во втором случае выполняется целочисленное деление с результатом 0, затем 0 приводится к даблу.
Почему при выводе, например std :: cout << cStr ;
Выводится "string" , то есть значение, а не адрес значения как обычно с указателями ?
Потому что в cout переопределена оператор << для типа char*, так чтобы выводилась именно строка, а не указатель. Чтоб вывести адрес преобразуйте указатель в int и выводите как целое число.
В wall сделайте виртуальный метод open с тривиальной реализацией (например retrurn 0;), который затем в door переопределите.
При вызове виртуального метода по указателю/ссылке на базовый класс будет вызван метод соответствующего дочернего класса без танцев с бубном.
Основной момент в переносимости - не использовать на прямую функций API ОС, все только через библиотечные вызовы.
Консольную переносимую программу можно и без Qt написать - с использованием стандартной библиотеки.
Зачем тебе double? В задаче же сказано - переменная типа int. А точнее unsigned int применительно к этой задаче.
Кроме того вычислять степень в цикле - не интересно.
Задачу можно решить используя битовую арифметику. Если учесть что каждый установленный бит в unsigned int - это 2 в некоторой степени равной позиции бита в числе. Нужно найти позицию самого старшего значащего бита в числе +1 - это и будет ответом на вопрос задачи.
Видимо как-то так:
Wdiget *w = new Widget(Qt::Window | Qt::WindowTitleHint | Qt:WindowStaysOnTopHint);
А вообще почитайте сначала что-нибудь по чистому С++ без примеси Qt. Там как раз про такие вещи пишут - где конструктор искать, как им пользоваться, как и для чего его писать, а так же много других интересных вещей.
Купите книгу Страуструпа "Язык программирования С++".
В таком объеме данных наверняка очень большое количество повторяющихся значений.
Можно попробовать собрать некую статистику:
значение - количество
по каждому значению.
Отсортировать и искать медиану по статистическим значениям.
Объем, видимо, будет все равно большой, но уже не террабайты.
Или, не собирать статистику, а двигаясь одновременно по обоим массивам считать количество значений. На каком элементе достигнете медианного положения - это значение и будет медианой.
Если значения в массиве одной длины (например 32 битные целые), то исходя из общего объема массивов легко вычислить положение медианного элемента. Так же пользуясь тем, что массивы отсортированы можно довольно быстро находить количество каждого конкретного значения.
Если я в классе до модификатора public укажу эти конструкторы, как ими пользоваться вообще?
Этот прием используется для создания классов, которые могут создаваться только друзьями или статическими публичными методами класса, например для гарантирования создания только одного объекта класса (паттерн singleton). Обычно кроме конструкторов в private секцию помещают и деструктор, а так же делают friend или static метод для получения экземпляра класса и для его уничтожения.
Кроме того конструктор и деструктор можно поместить в секцию protected класса - тогда экземпляры класса смогут создавать только потомки.