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

239
вектор против списка в STL

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

238
Какое использование параметров шаблона шаблона?

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

238
Что такое «rvalue reference для * this»?

На странице статуса C ++ 11 в Clang наткнулся на предложение под названием «ссылка на rvalue для * this» . Я прочитал довольно много о ссылках на rvalue и понял их, но я не думаю, что знаю об этом. Я также не мог найти много ресурсов в Интернете, используя термины. На странице есть ссылка на...

238
Что такое «промежуток» и когда я должен его использовать?

Недавно я получил предложения использовать span<T>их в своем коде или увидел здесь некоторые ответы на сайте, которые используют span- предположительно, какой-то контейнер. Но - я не могу найти ничего подобного в стандартной библиотеке C ++ 17. Так что же это за таинственное span<T>и...

237
Как правильно перегрузить оператор << для ostream?

Я пишу небольшую матричную библиотеку на C ++ для матричных операций. Однако мой компилятор жалуется, где раньше этого не было. Этот код оставлялся на полке в течение 6 месяцев, и между тем я обновил свой компьютер с debian etch до lenny (g ++ (Debian 4.3.2-1.1) 4.3.2), однако у меня та же проблема...

237
Как лучше отключить предупреждение о неиспользуемых переменных?

У меня есть кроссплатформенное приложение, и в некоторых моих функциях используются не все значения, переданные функциям. Следовательно, я получаю предупреждение от GCC, говорящее мне, что есть неиспользуемые переменные. Что было бы лучшим способом кодирования вокруг предупреждения? #Ifdef вокруг...

237
Почему моя программа не может скомпилироваться под Windows 7 на французском языке? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 6 лет назад . Locked . Этот вопрос и его ответы заблокированы, потому что...

236
Что такое «единица перевода» в C ++

В то время я читал «Эффективный C ++», написанный Мейерсом и натолкнулся на термин «единица перевода». Может ли кто-нибудь дать мне объяснение: 1) Что именно это 2) Когда я должен рассмотреть возможность его использования при программировании на C ++ 3) Если он связан только с C ++ или может...

235
Интервью: проверьте, является ли одна строка вращением другой строки [закрыто]

В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и,...

235
std :: vector регрессия производительности при включении C ++ 11

Я обнаружил интересную регрессию производительности в небольшом фрагменте C ++ при включении C ++ 11: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0;...

233
Опасен ли уровень оптимизации -O3 в g ++?

Я слышал из разных источников (хотя в основном от моего коллеги), что компиляция с уровнем оптимизации -O3в g ++ как-то «опасна», и ее следует избегать в целом, если в этом нет необходимости. Это правда, и если да, то почему? Должен ли я просто придерживаться...

233
Каковы некоторые лучшие способы избежать do-while (0); взломать в C ++?

Когда поток кода выглядит так: if(check()) { ... ... if(check()) { ... ... if(check()) { ... ... } } } Я обычно видел эту работу, чтобы избежать беспорядочного потока кода: do { if(!check()) break; ... ... if(!check()) break; ... ... if(!check()) break; ... ... } while(0); Какие есть лучшие способы...

232
round () для поплавка в C ++

Мне нужна простая функция округления с плавающей точкой, таким образом: double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1 Я могу найти ceil()и floor()в математике - но нет round(). Он присутствует в стандартной библиотеке C ++ под другим именем или...

232
Можно ли удалить это?

Разрешено ли, delete this;если оператор delete является последним оператором, который будет выполнен в этом экземпляре класса? Конечно, я уверен, что объект, представленный this-pointer, newсоздан. Я думаю о чем-то вроде этого: void SomeModule::doStuff() { // in the controller, "this" object of...

232
Зачем мне использовать push_back вместо emplace_back?

С ++ 11 векторов имеют новую функцию emplace_back. В отличие от этого push_back, который полагается на оптимизацию компилятора во избежание копирования, emplace_backиспользует идеальную пересылку для отправки аргументов непосредственно в конструктор для создания объекта на месте. Мне кажется, что...

231
Как правильно использовать пространства имен в C ++?

Я пришел из Java, где используются пакеты, а не пространства имен. Я привык помещать классы, которые работают вместе, чтобы сформировать законченный объект в пакеты, а затем повторно использовать их позже из этого пакета. Но сейчас я работаю в C ++. Как вы используете пространства имен в C ++? Вы...