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

140
Когда я должен использовать std :: thread :: detach?

Иногда я должен использовать std::threadдля ускорения моего приложения. Я также знаю, join()ждет, пока поток не завершится. Это легко понять, но в чем разница между звонком detach()и не звонком? Я думал, что без detach(), метод потока будет работать с использованием потока независимо. Не отрываясь:...

139
Поворот точки вокруг другой точки (2D)

Я пытаюсь сделать карточную игру, где карты разветвляются. Прямо сейчас, чтобы отобразить его, я использую Allegro API, который имеет функцию: al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X ,Y,DEGREES_TO_ROTATE_IN_RADIANS); так что с этим я могу легко сделать эффект вентилятора....

139
C ++ Оператор двойного адреса? (&&)

Я читаю исходный код STL и понятия не имею, что &&должен делать адресный оператор. Вот пример кода из stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } Имеет ли смысл «Адрес...

139
Разница между size_t и std :: size_t

Каковы различия между size_t и std::size_tс точки зрения того, где они объявлены, когда они должны использоваться и каких-либо других отличительных

139
C ++: переменная 'std :: ifstream ifs' имеет инициализатор, но неполный тип

Извините, если это довольно нудистно, но я довольно плохо знаком с C ++. Я пытаюсь открыть файл и прочитать его с помощью ifstream: vector<string> load_f(string file) { vector<string> text; ifstream ifs(file); string buffer, str_line; int brackets = 0; str_line = ""; while (...

139
Эффективный C ++ по-прежнему эффективен?

Из того, что я увидел в этом посте, я решил начать читать книгу « Эффективный C ++» . Но теперь, когда появилось много новых функций из-за C ++ 11 и изменились некоторые передовые практики, я не уверен, действительно ли это хорошая идея. С появлением C ++ 11 устарели какие-либо советы,...

138
Можно ли сериализовать и десериализовать класс в C ++?

Можно ли сериализовать и десериализовать класс в C ++? Я использую Java уже 3 года, и сериализация / десериализация на этом языке довольно тривиальна. Есть ли в C ++ похожие функции? Существуют ли собственные библиотеки, которые обрабатывают сериализацию? Пример будет...

138
Зачем C ++ нужен отдельный заголовочный файл?

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

138
Связывание статических библиотек с другими статическими библиотеками

У меня есть небольшой фрагмент кода, который зависит от многих статических библиотек (a_1-a_n). Я хотел бы упаковать этот код в статическую библиотеку и сделать его доступным другим людям. Моя статическая библиотека, назовем ее X, компилируется нормально. Я создал простой пример программы, которая...

138
Как сортировать с лямбдой?

sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); Я хотел бы использовать лямбда-функцию для сортировки пользовательских классов вместо привязки метода экземпляра. Однако приведенный выше код дает ошибку:...

138
Как собрать Qt для Visual Studio 2010

Я изо всех сил пытался найти руководство, которое предоставляет стабильное решение для использования Qt с Visual Studio 2010, поэтому после сбора всей информации и некоторых проб и ошибок я хотел бы написать свое решение в виде руководства. Проблема, или почему невозможно использовать готовые...

138
Как эмулировать поведение инициализации массива C «int arr [] = {e1, e2, e3,…}» с помощью std :: array?

(Примечание: этот вопрос касается того, что не нужно указывать количество элементов и по-прежнему разрешать непосредственную инициализацию вложенных типов.) В этом вопросе обсуждаются варианты использования, оставленные для массива C, например int arr[20];. В своем ответе @James Kanze показывает...

138
Измерение времени выполнения функции в C ++

Я хочу узнать, сколько времени требуется в моей программе на C ++ для выполнения определенной функции в Linux . После этого я хочу провести сравнение скорости. Я видел несколько функций времени, но закончил с этим из-за повышения. Chrono: process_user_cpu_clock, captures user-CPU time spent by the...

138
Есть ли причина, по которой && и || перегружены? не закорачивайте?

Короткое замыкание поведение операторов &&и ||удивительный инструмент для программистов. Но почему они теряют это поведение при перегрузке? Я понимаю, что операторы - это просто синтаксический сахар для функций, но операторы для boolимеют такое поведение, почему оно должно быть ограничено...

138
Почему начальное выделение C ++ намного больше, чем C?

При использовании того же кода простая замена компилятора (с компилятора C на компилятор C ++) изменит объем выделяемой памяти. Я не совсем уверен, почему это так, и хотел бы понять это больше. Пока что лучший ответ, который я получил, - это «вероятно, потоки ввода-вывода», который не очень...

137
Каков размер long в 64-битной Windows?

Не так давно кто-то сказал мне, что longна 64-битных машинах нет 64 бит, и я всегда должен их использовать int. Это не имело смысла для меня. Я видел, как документы (например, на официальном сайте Apple) говорят, что longони действительно 64-битные при компиляции для 64-битного процессора. Я...

137
Как мне указать указатель на перегруженную функцию?

Я хочу передать перегруженную функцию в std::for_each()алгоритм. Например, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Я ожидаю, что компилятор разрешит f()тип итератора. По-видимому, он (GCC 4.1.2) этого не делает. Итак,...