Вопросы с тегом «c++»

95
Исправление ошибок сегментации в C ++

Я пишу кроссплатформенную программу на C ++ для Windows и Unix. На стороне окна код компилируется и выполняется без проблем. Со стороны Unix он компилируется, однако, когда я пытаюсь запустить его, я получаю ошибку сегментации. Моя первоначальная догадка заключается в том, что есть проблема с...

95
Могу ли я инициализировать список векторов типа «только перемещение»?

Если я пропущу следующий код через мой снимок GCC 4.7, он попытается скопировать unique_ptrs в вектор. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Очевидно,...

95
vector :: at vs. vector :: operator []

Я знаю, что at()это медленнее, чем []из-за проверки границ, которая также обсуждается в подобных вопросах, таких как C ++ Vector at / [] operator speed или :: std :: vector :: at () vs operator [] << удивительные результаты !! В 5-10 раз медленнее / быстрее! . Я просто не понимаю, для чего...

95
Как вернуть интеллектуальные указатели (shared_ptr) по ссылке или по значению?

Допустим, у меня есть класс с методом, который возвращает shared_ptr. Каковы возможные преимущества и недостатки возврата по ссылке или по значению? Две возможные подсказки: Раннее разрушение объекта. Если я возвращаю shared_ptrссылку by (const), счетчик ссылок не увеличивается, поэтому я рискую...

95
зачем явно удалять конструктор?

Когда / зачем мне явно удалять конструктор? Если предположить, что причина в том, чтобы предотвратить его использование, почему бы просто не сделать это private? class Foo { public: Foo() = delete; };...

95
Заменил бы '::' на '. создать неясности в C ++?

В C ++ оператор ::используется для доступа к классам, функциям и переменным в пространстве имен или классе. Если бы спецификация языка использовалась .вместо того, чтобы ::в тех случаях, например, при доступе к переменным / методам экземпляра объекта, вызывать ли это возможные неоднозначности,...

94
Преобразование bool в текст в C ++

Может быть, это глупый вопрос, но есть ли способ преобразовать логическое значение в строку так, чтобы 1 превратилось в «истину», а 0 превратилось в «ложь»? Я мог бы просто использовать оператор if, но было бы неплохо узнать, есть ли способ сделать это с помощью языка или стандартных библиотек....

94
Как установить точки останова в будущих разделяемых библиотеках с помощью флага команды

Я пытаюсь автоматизировать сеанс gdb с помощью --commandфлага. Я пытаюсь установить точку останова для функции в разделяемой библиотеке (эквивалент DLL в Unix). Мой cmds.gdb выглядит так: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r Однако я получаю следующее: shlomi: ~ /...

94
Какой самый простой способ проверить, является ли число в C ++ степенью двойки?

Мне нужна такая функция: // return true iff 'n' is a power of 2, e.g. // is_power_of_2(16) => true is_power_of_2(3) => false bool is_power_of_2(int n); Кто-нибудь может подсказать, как я мог это написать? Можете ли вы назвать мне хороший веб-сайт, где можно найти такой алгоритм?...

94
Как добавить задержку по времени в программу на C ++?

Я пытаюсь добавить задержку по времени в программу на C ++, и мне было интересно, есть ли у кого-нибудь предложения о том, что я могу попробовать, или информацию, которую я могу посмотреть? Мне жаль, что у меня не было более подробной информации о том, как я реализую эту временную задержку, но...

94
Получите IP-адрес машины

Этот вопрос почти такой же, как и ранее заданный: Получить IP-адрес локального компьютера - Вопрос. Однако мне нужно найти IP-адрес (а) Linux-машины . Итак: Как мне - программно на C ++ - определить IP-адреса Linux-сервера, на котором работает мое приложение. У серверов будет как минимум два...

94
Равномерно генерировать случайные числа по всему диапазону

Мне нужно сгенерировать случайные числа в пределах указанного интервала [макс; мин]. Кроме того, случайные числа должны быть равномерно распределены по интервалу, а не находиться в определенной точке. В настоящее время я генерирую как: for(int i=0; i<6; i++) { DWORD random = rand()%(max-min+1)...

94
как добавить объект list <T> к другому

в C ++ у меня есть два list<T>объекта, Aи Bя хочу добавить все члены Bв конец A. Я искал несколько разных источников и не нашел простого решения (ei A.append(B);), и это меня немного удивляет. Как лучше всего это сделать? Так получилось, что после этого меня не волнует B (он удаляется в...

94
В чем смысл указателей на функции?

Мне сложно увидеть полезность указателей на функции. Я предполагаю, что в некоторых случаях это может быть полезно (в конце концов, они существуют), но я не могу придумать случая, когда лучше или неизбежно использовать указатель на функцию. Не могли бы вы привести пример правильного использования...