Алгоритм элементарный. Функций разрешенных для использования достаточно. Читать придется посимвольно с помощью fgetc. В цикле до конца файла читаете очередной символ, сравниваете с первым символом строки, если равны, то следующий символ нужно сравнивать со вторым символом строки и т.д.
Другое дело, что читать посимвольно из файла - это плохая идея. Правильнее было бы читать файл большими кусками, скажем по 4 Кб или больше, и искать строку в прочитанном куске. Но задание есть задание.
Вы сделайте собственную попытку реализации алгоритма, если будут затруднения, можете писать сюда конкретные вопросы.
А сейчас ваш вопрос это задание - это противоречит правилам ресурса.
Чем стандартные сортировки не устраивают? В стандартной библиотеке несколько вариантов, выбирайте.
Ваша задача сортировки ничем особым не отличается от любых других сортировок.
Правда из описания не понятно что вы в итоге хотите получить. Вам надо сортировать каждый столбец отдельно?
Приведите пример исходной и отсортированной матрицы для ясности.
shledon, Конечно. Для этого открытый ключ ЦА всегда должен быть в доступе.
Фактически ЦА нужен только на этапе подтверждения сертификата или отзыва сертификата и формирования нового списка отзывов. Все остальное время его можно держать выключенным.
Зато когда истекает срок действия сертификата ЦА - все дерево сертификатов, подписанное его сертификатом протухает. К этому событию надо готовится отдельно :-)
iihaarr, Интересно, для чего вам указатель в vector<char>?
я получу указатель на а?
Нет. data возвращает указатель на первый элемент массива внутри вектора, в вашем случае возвращает char* Вы получаете указатель на содержимое arr, а не само содержимое.
Это потому что, скорее всего, в вашем компиляторе размер bool 4 байта. Стандарт не определяет размер bool.
Смысл подобных битовых полей в том, что на указанном типе данных выделяются биты/группы битов. Но память все равно выделяется под указанный тип данных (а не под биты). Если одного поля указанного типа будет не достаточно, чтобы вместить все биты, то компилятор добавит еще одно поле и т.д. В вашем примере правильней использовать uint8_t, тогда размер будет 1 байт. Для доступа к таким полям компилятор сам генерирует соответствующие битовые операции. При желании их можно увидеть в ассемблерном коде, вашей программы. В любом случае, как бы вы не определяли битовые поля на прямую с битами вы работать не можете, только через битовые операции. Правда подобное определение битовых полей скрывает этот факт и создает иллюзию прямого доступа к битам. Кстати, еще один момент, на битовое поле нельзя получить ссылку - это следствие того, что биты не возможно адресовать (и взять адрес битового поля).
Подобные битовые поля - не универсальный вариант. Если вам понадобится другое количество битов, то придется менять структуру. Если нужен будет динамический размер битового поля, то вообще подобный вариант - не вариант. Правда в этом случае придется самому писать функции для доступа к битам по их номеру. Но это не большая проблема.
Либо это дохнет диск, либо глюки в винде.
Чтобы исключить диск сделайте тест поверхности с загрузочной флешки (не из вашей винды).
С виндой может быть сложно - самый простой вариант переустановка.
Посмотрите в менеджере задач и мониторе ресурсов, что происходит с ОС, в момент зависания копирования.
Может быть какой-то процесс тянет одеяло на себя, или возможно загрузка дисковых очередей на максимумах.
Для информации: в цикле for не обязательно переменную цикла инициализировать нулем, а так же не обязательно делать инкремент переменной цикла - можно делать произвольную операцию (операции). Конкретно к вашей задаче для обхода только нечетных элементов массива можно использовать такой цикл: for (int i=1; i<16; i+=2)
Для отображения сетевого окружения винда использует широковещательные запросы. Широковещательные пакеты обычно не маршрутизируются между сетями, поэтому ответы на эти запросы из ВПН не приходят (потому что запросы туда не попадают).
Если получится сделать "мост" между реальным сетевым адаптером и "ВПН адаптером", то это будет единая сеть и широковещательные пакеты будут проходить. При этом надо сделать так, чтобы компы в ВПН и компы в ЛВС были в одной и той же IP сети. Теоретически это можно сделать, практически - не пробовал, возможна масса подводных камней.
Другой вариант - настроить между ЛВС и ВПН proxy-arp.
Поле user_id текстовое? Поиск по тексту медленнее чем по числовым значениям.
Как уже тут все писали - добавить индексы по полям, участвующим во фразе where.
Индексация полей - это то благодаря чему ускоряются операции поиска в таблице. Без индексов кардинально вы ничего не измените.
Зачем переводить в строку? Переводи в число просто установкой соответствующего бита.
А затем просто напечатай это число printfом. Если же нужна именно строка на выходе, то можно использовать sprintf.
b in bits of X
В b очередной бит из Х, т.е. 0 или 1 из входной строки, а не то что у тебя сейчас. Причем 0 и 1 в своем числовом значении, а не как символ!
Вместо binaryStack можно использовать входную же строку (если она тебе больше не нужна), просто заменяя ее значения, на значения выдаваемые алгоритмом.
m4t1k_matik, Очевидно, где-то выход за пределы массива.
Предполагаю, что это происходит внутри функции koeff(), а конкретнее, видимо в FI1 или FI2. Но это не точно. Ты передаешь в koeff() 4 массива и только 2 размерности. Как минимум у двух массивов размерности отличные от передаваемых.
Найти место возникновения ошибки можно довольно легко:
1. можно запустить программу под отладчиком при срабатывании segfault отладчик остановится в точке программы, где это произошло, от этого места перейдешь к своему коду по стеку вызовов, тут и будет место где произошел выход за пределы.
2. т.к. ты под линуксом, то можно включить core dump и после того как он сформируется проанализировать его в gdb. Погугли как анализировать дампы, это не трудно.
Вы хотите от SQL странного или вы так криво объясняете.
Что если в отобранных записях есть разные значения title_list? Каким должно быть имя столбца в таком случае?
Сделайте переименование столбцов вышестоящей логикой, вне SQL запроса, например при выводе пользователю.
То что вы хотите не делается в рамках SQL.
Если название столбца на момент выполнения запроса вам уже известно, то можете сделать алиас для name_list: 'name_list as ' + $title
Пример кода у вас, видимо на php, я не силен в нем. Думаю мысль должна быть понятна.
Лучше подобные вещи делать с помощью prepared statments а не таким способом, как я показал. Не уверен, правда, что там можно делать алиасы.
У вас не верная информация 20-летней давности. Она и тогда уже была не верна.
sendmail как и все широко используемые почтовики достаточно безопасен, чтоб его не ломали.
Другое дело, что вы криво можете настроить почтовый сервер (например оставили открытый relay), оставили дыру в безопасности хоста где он работает (другие открытые порты, не безопасное ПО и т.п.), или просто пользователи получают письма с подозрительными ссылками и переходят по ним.
Но это не зависит от безопасности самого почтовика.
sendmail, postfix, exim - широко и активно применяются во всем интернете. Они давно уже избавились от детских болезней. Да, конечно, никто не гарантирует, что там нет дыр, но те что находят - исправляются. Наверняка приведенный список не полон, это просто то с чем я лично имел дело.
В общем случае никак. Можно вывести или задаваемый список столбцов или все.
Возможно в каких-то конкретных вариантах СУБД есть свои не универсальные механизмы для этого, но я о таких не знаю.
Есть ескейп последовательности, которые позволяют среди прочего и позиционировать курсор. Но не все консоли всех ОС поддерживают эти фишки или они могут различаться. В общем это отдельный квест, он еще и платформо зависимый.
Есть кросс-платформенные библиотеки, которые реализуют подобные возможности, например ncurses. В питоне, по моему, есть модуль curses.
alenus, В следующий раз этот порт изменится и вам придется переписывать правило.
Нужно действовать не так. Нужно выпускать весь исходящий трафик (с любого порта внутри сети) на определенный внешний порт (и возможно адрес).
Метод get у тебя должен возвращать int, а в return у тебя указан array. array - это массив, следовательно ты пытаешься вернуть массив там где нужно вернуть int. В С/С++ массивы на прямую не возвращаются и не передаются (как параметры в функции), вместо них возвращается (и передается) указатель. Отсюда и соответствующая ошибка.
Если ты действительно хочешь возвращать int, то надо писать что-то вроде: return array[0];
Если тебе надо возвращать массив, то тип возвращаемого значения должен быть int*, о чем и написано в ошибке.
В остальном смотри ответ Александр Ананьев
Рекурсия это вариант итеративной обработки, когда есть много объектов и надо что-то с ними сделать.
Другой вариант итераций - это циклическая обработка.
У вас в функции нет цикла. Так что тут нет итераций, соответственно не возможно сделать и рекурсию.
Возможно стоит озвучить тут всю задачу целиком, а не ваши выводы из нее.
Кстати, чаще всего решают обратную задачу, как из рекурсивной функции сделать циклическую. Т.к. рекурсия требует расхода стека и может привести к его переполнению, если вложенность слишком большая. Обычно рекурсивная функция проще в реализации, но из-за недостатков рекурсии такой вариант, чаще всего, не желателен.
Другое дело, что читать посимвольно из файла - это плохая идея. Правильнее было бы читать файл большими кусками, скажем по 4 Кб или больше, и искать строку в прочитанном куске. Но задание есть задание.
Вы сделайте собственную попытку реализации алгоритма, если будут затруднения, можете писать сюда конкретные вопросы.
А сейчас ваш вопрос это задание - это противоречит правилам ресурса.