c++- все статьи тега ➜ страница 11


Указатели в качестве ключей в карте на C++ в STL

У меня есть вопрос о том, как обрабатываются указатели на пользовательский объект при использовании в качестве ключей в карте. Более конкретно, если я определяю std::map< CustomClass*, int > foo; Будет ли работать реализация C++ по умолчанию для обработки этих указателей? Или мне нужно определить пользовательскую функцию компаратора для ее обработки? Вообще, хорошо ли использовать указатели на объекты в качестве ключей? ...

Lambda capture by value mutable не работает с const &?

Рассмотрим следующее: void test( const int &value ) { auto testConstRefMutableCopy = [value] () mutable { value = 2; // compile error: Cannot assign to a variable captured by copy in a non-mutable lambda }; int valueCopy = value; auto testCopyMutableCopy = [valueCopy] () mutable { valueCopy = 2; // compiles OK }; } Почему первая версия является ошибкой компиляции, когда я объявил лямбду изменяемой и захватил value по значению (которое, как я думал, сде ...

Программно получить DNS-серверы хоста

Используя C++, я хотел бы получить DNS-серверы, используемые хостом для трех операционных систем: OS X, FreeBSD и Windows. Я хотел бы подтвердить, что приведенные ниже подходы действительно являются наилучшей практикой, а если нет, то превосходной альтернативой. OS X: уже ответил ; обновлена ссылка на developer.apple.com окна: GetNetworkParams FreeBSD : /etc/resolv.conf Заранее спасибо за ваш помогите! ...

Рекомендации по улучшению кода

Каким рекомендациям вы следуете, чтобы улучшить общее качество вашего кода? У многих людей есть правила о том, как писать код C++, которые (предположительно) затрудняют ошибки. Я видел, как людинастаивают , что за каждым утверждениемif следует блок скобок ({...}). Меня интересует, каким руководящим принципам следуют другие люди, и причины, стоящие за ними. Меня также интересуют рекомендации, которые вы считаете ерундой, но которые обычно соблюдаются. Может ли кто-нибудь предложить мало? Чтобы ...

C++ lambda с захватом в качестве указателя функции

Я играл с лямбдами C++ и их неявным преобразованием в указатели функций. Мой начальный пример был использовать их в качестве обратного вызова для функции ftw. Это работает, как и ожидалось. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int typeflag) -> int { cout << fpath << endl; return 0; }; int ret = ftw("/etc", callback, 1); return ret; ...

когда использовать JNIEXPORT и JNICALL в Android NDK?

Я пытаюсь написать свои собственные источники jni. Глядя на некоторые примеры ndk, я обнаружил, что они часто используют эти макросы JNIEXPORT и JNICALL follewed по имени пакета java, как это JNIEXPORT void JNICALL Java_com_example_plasma_PlasmaView_renderPlasma(JNIEnv * env, jobject obj, jobject bitmap, jlong time_ms) Я погуглил его, но я не могу понять, когда и как использовать эти макросы ...

C++ преобразование asii экранированной строки unicode в строку utf8

Мне нужно прочитать стандартную строку в стиле ascii с экранированием unicode и преобразовать ее в строку std::, содержащую кодированный эквивалент utf8. Так, например, "u03a0 " (строка std::с 6 символами) должна быть преобразована в строку std::с двумя символами, 0xce, 0xa0 соответственно, в необработанном двоичном коде. Был бы очень рад, если бы был простой ответ с помощью icu или boost, но я не смог его найти. (это похоже на преобразование строки Юникода в экранированная строка ASCII , но ...

Библиотека C++ для преобразования HTML в PDF? [закрытый]

Я ищу библиотеку C / C++ для преобразования HTML (фактически XHTML + CSS) документов в PDF. Он предназначен для коммерческого использования, и источник был бы хорошим, но не существенным. У кого-нибудь есть рекомендации или опыт в этом деле? UPDATE: чтобы уточнить, я ориентируюсь только на платформу Windows. Я разрабатываю с Borland C++ Builder 2006, но библиотека не обязательно должна быть компонентом VCL. Заранее большое спасибо. Стив. ...

Сдвиг 4 целых чисел вправо на разные значения SIMD

SSE не предоставляет способа сдвига упакованных целых чисел на переменную величину (я могу использовать любые инструкции AVX и старше). Вы можете делать только однообразные смены. Результат, которого я пытаюсь достичь для каждого целого числа в векторе, таков. i[0] = i[0] & 0b111111; i[1] = (i[1]>>6) & 0b111111; i[2] = (i[2]>>12) & 0b111111; i[3] = (i[3]>>18) & 0b111111; По существу пытается изолировать другую группу из 6 битов в каждом целом числе. Так како ...

Как правильно закрыть программу Qt?

Когда я пытаюсь закрыть свою программу Qt, она просто продолжает работать в фоновом режиме, хотя окна больше нет. В принципе, я хотел бы знать, что я должен сделать, чтобы он закрывался правильно, когда я нажимаю Красный крест на моем главном окне (у которого нет родителя). Перейдя по этой ссылке , я попробовал несколько вещей, таких как: QApplication app(argc, argv); //... app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit())); return app.exec(); Или QApplication app( ...

Быстрый алгоритм вычисления процентилей для удаления выбросов

У меня есть программа, которая должна многократно вычислять приблизительный процентиль (статистику порядка) набора данных, чтобы удалить выбросы перед дальнейшей обработкой. В настоящее время я делаю это, сортируя массив значений и выбирая соответствующий элемент; это выполнимо, но это заметная вспышка на профилях, несмотря на то, что это довольно незначительная часть программы. Подробнее: набор данных содержит порядка 100000 чисел с плавающей запятой, и предполагается, что чтобы быть" разум ...

DllImport оформлено имя проблема-не удается найти точку входа

У меня странная проблема у меня есть DLL C++, которую я импортирую в библиотеку C# с помощью импорта DLL. Если я укажу точку входа, все будет работать, как и ожидалось, вот пример: internal static class UnsafeMethods { [DllImport("GoodSchool.dll", EntryPoint = @"?AddNum@@YAHHH@Z")] public static extern int AddNum(int num1, int num2); } class Program { static void Main(string[] args) { Console.WriteLine(UnsafeMethods.AddNum(4,5)); } } Однако, если я использую упро ...

c++: определение функции dllimport не допускается, построение с помощью visual studio 2010

Я использую visual studio 2010 для построения a .файл DLL. Я написал судебный процесс следующим образом: // trialDLL.h #ifndef TRIALDLL_H_ #define TRIALDLL_H_ // ... MyMathFuncs class definition omitted #ifdef __cplusplus extern "C"{ #endif #ifdef TRIALDLL_EXPORT #define TRIALDLL_API __declspec(dllexport) #else #define TRIALDLL_API __declspec(dllimport) #endif TRIALDLL_API MyMathFuncs* __stdcall new_MyMathFuncs(double offset); TRIALDLL_API void __stdcall del_MyMathFuncs(MyMathFuncs *myMath ...

Обновление графика с помощью C++ и GLUT

Я написал программу на языке c++ в Xcode для реализации символьной регрессии и генетического программирования. Я хотел бы создать окно для визуализации справочных данных (массив 2d точек) и лучшей функции, которую программа генерирует каждое поколение. Проще говоря, я хотел бы, чтобы окно показывало 2 графика и обновлялось циклом for. Насколько я понимаю, GLUT кажется хорошим фреймворком, и я написал функцию для отображения справочных данных (std:: vector is how Я сохраняю переменную" reference ...

Настройка приложения cocos2d-x с помощью шаблона проекта visual studio 2010

Я пытаюсь настроить приложение на Windows 7 с помощью Cocos2D-x. Я следовал этому учебнику. Я сделал следующее: построил библиотеку под управлением Build-win32.сценарий летучей мыши. Завод. установлен шаблон проекта VS2010. Завод. успешно выполните все тестовые программы. создал новый проект cocos2D-x с помощью установленного шаблона. Работы Когда я компилирую приложение Hello World, у меня есть следующее ошибки: error C1083: impossible to open inclusion file 'CCstdC.h' No such file o ...

C++ - стек со связанным списком-ошибка плохой памяти?

В настоящее время я пишу стек, который реализуется с помощью связанного списка. Я получаю эту ошибку: Unhandled exception at 0x75249617 in STACK_LinkedList.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x002ee8f8. Я полагаю, что это, возможно, происходит от моих push() или pop() функций. Я не могу найти свою ошибку. Я довольно новичок в связанных списках, поэтому мне немного трудно найти ошибки. Вот моя функция push(): // Adds an item to the top of the stack template &l ...

Переменная C++ имеет инициализатор, но неполный тип?

Я пытаюсь скомпилировать 2 класса В C++ с помощью следующей команды: g++ Cat.cpp Cat_main.cpp -o Cat Но я получаю следующую ошибку: Cat_main.cpp:10:10: error: variable ‘Cat Joey’ has initializer but incomplete type Может ли кто-нибудь объяснить мне, что это значит? Мои файлы в основном создают класс (Cat.cpp) и экземпляр (Cat_main.cpp). Вот мой исходный код: Кот.cpp: #include <iostream> #include <string> class Cat; using namespace std; int main() { Cat Joey("Joey"); ...

Интерфейс SWI-Prolog C++

Я получаю ошибку при попытке загрузить DLL, сгенерированную с помощью swipl-ld в prolog предикат, который создает исключение, это initialization(shlib:use_foreign_library('C:/Users/valquiria.duarte/Desktop/dlog-server-0.3-beta-source/dlog-server/output/hash_swi.dll', install)), И исключением является этот ERROR: '$open_shared_object'/3: %1 is not a valid Win32 application. ...

Попытка асинхронного ввода-вывода с потоками Win32

Я пишу программу последовательного порта для Windows. Чтобы повысить производительность, я пытаюсь преобразовать подпрограммы в асинхронный ввод-вывод. у меня есть код, который работает довольно хорошо, но я новичок в этом, и я хотел бы улучшить производительность программы дальше. Во время стресс-тестов программы (т. е. пакетных данных в/из порта как можно быстрее при высокой скорости передачи) нагрузка на процессор становится довольно высокой. Если у кого-то есть опыт асинхронного ввода-вывод ...

разница между атомным bool стандарта и атомным флагом

Я не знал о переменных std::atomic, но знал о переменных std::mutex (странно!) обеспечивается стандартом; однако одна вещь привлекла мое внимание: есть два, казалось бы, одинаковых (для меня) атомарных типа, предоставляемых стандартом, перечисленных ниже: std::atomic<bool> тип std::atomic_flag тип Также упоминается на примере std::atomic_flag type - Std:: atomic_flag-это атомарный булев тип. В отличие от всех специализаций std:: atomic, он гарантированно будет без блокировки ...