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

244
Есть ли эквивалент Java или методология для ключевого слова typedef в C ++?

Исходя из опыта C и C ++, я обнаружил, что разумное использование typedefочень полезно. Знаете ли вы о способе достижения аналогичной функциональности в Java, будь то механизм Java, шаблон или какой-то другой эффективный способ, который вы...

243
Как удалить дублирование кода между похожими константными и неконстантными функциями-членами?

Допустим, у меня есть следующее, class Xгде я хочу вернуть доступ к внутреннему члену: class Z { // details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) { // massive amounts of code for validating index Z& ret = vecZ[index]; // even more code for determining that the Z...

243
Указатель на элемент данных класса «:: *»

Я наткнулся на этот странный фрагмент кода, который прекрасно компилируется: class Car { public: int speed; }; int main() { int Car::*pSpeed = &Car::speed; return 0; } Почему C ++ имеет этот указатель на нестатический член данных класса? Какая польза от этого странного указателя в реальном...

243
Каковы наиболее широко используемые библиотеки векторной / матричной математики / линейной алгебры в C ++, а также их соотношение цены и выгоды? [закрыто]

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

243
Когда я использую точку, стрелку или двойное двоеточие для ссылки на члены класса в C ++?

Исходя из других языков C происхождения (например , Java или C #) на C ++, то в первую очень запутанные , что C ++ имеет три способа обратиться к членам класса: a::b, a.b, и a->b. Когда я использую какой из этих операторов? (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack...

243
Как правильно добавить включаемые каталоги с CMake

Около года назад я спросил о зависимостях заголовка в CMake . Недавно я понял, что проблема заключается в том, что CMake считает эти файлы заголовков внешними по отношению к проекту. По крайней мере, при генерации проекта Code :: Blocks заголовочные файлы не появляются внутри проекта (исходные...

242
Возврат нескольких значений из функции C ++

Есть ли предпочтительный способ вернуть несколько значений из функции C ++? Например, представьте себе функцию, которая делит два целых числа и возвращает как частное, так и остаток. Один из способов, которые я обычно вижу, это использование опорных параметров: void divide(int dividend, int...

242
Почему используются безымянные пространства имен и каковы их преимущества?

Я только что присоединился к новому программному проекту C ++, и я пытаюсь понять дизайн. Проект часто использует безымянные пространства имен. Например, что-то подобное может произойти в файле определения класса: // newusertype.cc namespace { const int SIZE_OF_ARRAY_X; const int SIZE_OF_ARRAY_Y;...

242
Как проверить, начинается ли строка C ++ std :: string с определенной строки, и преобразовать подстроку в int?

Как реализовать следующее (псевдокод Python) в C ++? if argv[1].startswith('--foo='): foo_value = int(argv[1][len('--foo='):]) (Например, если argv[1]есть --foo=98, то foo_valueесть 98.) Обновление: я не решаюсь взглянуть на Boost, так как я просто смотрю на внесение очень небольших изменений в...

242
Как быстро записать большой буфер в двоичный файл на C ++?

Я пытаюсь записать огромное количество данных на мой SSD (твердотельный накопитель). И в огромных количествах я имею в виду 80 ГБ. Я просматривал в Интернете решения, но лучшее, что я придумал, было это: #include <fstream> const unsigned long long size = 64ULL*1024ULL*1024ULL; unsigned long...

242
Какова цель std :: launder?

P0137 представляет шаблон функции std::launderи вносит множество изменений в стандарт в разделах, касающихся объединений, времени жизни и указателей. Какую проблему решает эта статья? Какие изменения в языке я должен знать? И что мы думаем...

241
(-2147483648> 0) возвращает true в C ++?

-2147483648 - это наименьшее целое число для целочисленного типа с 32 битами, но кажется, что оно будет переполнено в if(...)предложении: if (-2147483648 > 0) std::cout << "true"; else std::cout << "false"; Это напечатает trueв моем тестировании. Однако, если мы приведем -2147483648...

241
Требуется Microsoft Visual C ++ 14.0 (невозможно найти vcvarsall.bat)

Я установил Python 3.5 и во время работы pip install mysql-python это дает мне следующую ошибку error: Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat) Я добавил следующие строки в мой путь C:\Program Files\Python 3.5\Scripts\; C:\Program Files\Python 3.5\; C:\Windows\System32;...

240
Как суммировать элементы вектора C ++?

Каковы хорошие способы найти сумму всех элементов в std::vector? Предположим, у меня есть вектор std::vector<int> vectorс несколькими элементами. Теперь я хочу найти сумму всех элементов. Каковы разные способы для того...

240
Как правильно реализовать пользовательские итераторы и const_iterators?

У меня есть пользовательский класс контейнера , для которого я хотел бы написать iteratorи const_iteratorклассы. Я никогда не делал этого раньше, и мне не удалось найти подходящее руководство. Каковы рекомендации по созданию итераторов, и что я должен знать? Я также хотел бы избежать дублирования...

239
Зачем использовать итераторы вместо индексов массивов?

Возьмите следующие две строки кода: for (int i = 0; i < some_vector.size(); i++) { //do stuff } И это: for (some_iterator = some_vector.begin(); some_iterator != some_vector.end(); some_iterator++) { //do stuff } Мне сказали, что второй способ предпочтительнее. Почему именно...