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

331
Как реализовать классические алгоритмы сортировки в современном C ++?

std::sortАлгоритм (и его кузены std::partial_sortи std::nth_element) из стандартной библиотеки C ++ в большинстве реализаций сложный и гибридная объединение более элементарных алгоритмов сортировки , таких как выбор сортировки, вставки сортировка, быстрая сортировка, сортировка слиянием, или кучи...

329
Как правильно реализовать шаблон фабричного метода в C ++

В C ++ есть одна вещь, которая заставляет меня чувствовать себя некомфортно в течение достаточно долгого времени, потому что я, честно говоря, не знаю, как это сделать, хотя это звучит просто: Как правильно реализовать Factory Method в C ++? Цель: позволить клиенту создавать экземпляры некоторого...

329
Является ли неинициализированная локальная переменная самым быстрым генератором случайных чисел?

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

329
Является ли 0 десятичным или восьмеричным литералом?

Ноль всегда равен нулю, поэтому это не имеет значения. Но в недавней беседе с другом он сказал, что восьмеричные литералы сегодня почти не используются. † Затем до меня дошло, что на самом деле почти все целочисленные литералы в моем коде являются восьмеричными, а именно 0. Является 0ли...

326
Почему массивы переменной длины не являются частью стандарта C ++?

Я не очень много использовал C в последние несколько лет. Когда я прочитал этот вопрос сегодня, я натолкнулся на некоторый синтаксис Си, с которым я не был знаком. Видимо в C99 действует следующий синтаксис: void foo(int n) { int values[n]; //Declare a variable length array } Это кажется довольно...

324
Передача 2D-массива в функцию C ++

У меня есть функция, которую я хочу взять в качестве параметра двумерный массив переменного размера. Пока у меня есть это: void myFunction(double** myArray){ myArray[x][y] = 5; etc... } И я объявил массив в другом месте в моем коде: double anArray[10][10]; Тем не менее, вызов...

323
Печать от 1 до 1000 без петель или условных обозначений

Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Задача : печатать числа от 1 до 1000 без использования циклов или условных операторов. Не просто пишите printf()или...

322
Деоптимизация программы для конвейера в процессорах семейства Intel Sandybridge

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

321
C ++ 11 обратный цикл на основе диапазона for

Есть ли контейнерный адаптер, который бы изменял направление итераторов, чтобы я мог перебирать контейнер в обратном направлении с помощью цикла for на основе диапазона? С явными итераторами я бы преобразовал это: for (auto i = c.begin(); i != c.end(); ++i) { ... в это: for (auto i = c.rbegin(); i...

321
Какова цель использования фигурных скобок (т.е. {}) для однострочного цикла if или?

Я читаю некоторые лекционные заметки моего лектора C ++, и он написал следующее: Использовать отступ // OK Никогда не полагайтесь на приоритет оператора - всегда используйте скобки // OK Всегда используйте блок {} - даже для одной строки // не в порядке , почему ??? Const объект на левой стороне...

319
Какой самый простой способ вызвать сбой программы на C ++?

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

319
Сочетание C ++ и C - как работает #ifdef __cplusplus?

Я работаю над проектом, в котором много унаследованного кода на Си . Мы начали писать на C ++ с намерением в конечном итоге также преобразовать устаревший код. Я немного озадачен тем, как взаимодействуют C и C ++. Я понимаю , что обертывание C кода extern "C"на C ++ компилятор не будет искажать C...

312
Вы (действительно) пишете безопасный код исключения? [закрыто]

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

311
Является ли #pragma безопасным включением охраны?

Я читал, что существует некоторая оптимизация компилятора при использовании, #pragma onceкоторая может привести к более быстрой компиляции. Я признаю, что это нестандартно и, следовательно, может создать проблему кросс-платформенной совместимости. Это то, что поддерживается большинством современных...

310
Сортировка вектора по убыванию

Должен ли я использовать std::sort(numbers.begin(), numbers.end(), std::greater<int>()); или std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators отсортировать вектор в порядке убывания? Есть ли какие-либо преимущества или недостатки с одним подходом или...

306
Как реализовать итератор в стиле STL и избежать распространенных ошибок?

Я сделал коллекцию, для которой хочу предоставить итератор с произвольным доступом в стиле STL. Я искал пример реализации итератора, но не нашел. Я знаю о необходимости постоянных перегрузок []и *операторов. Какие требования предъявляются к итератору в стиле «STL» и каких других ошибок следует...

305
Скопируйте файл разумным, безопасным и эффективным способом

Я ищу хороший способ скопировать файл (двоичный или текстовый). Я написал несколько образцов, каждый работает. Но я хочу услышать мнение опытных программистов. Я упустил хорошие примеры и ищу способ, который работает с C ++. ANSI-C ПУТЬ #include <iostream> #include <cstdio> // fopen,...

304
Как я могу перебрать перечисление?

Я только что заметил, что вы не можете использовать стандартные математические операторы для перечисления, такие как ++ или + = Итак, каков наилучший способ перебрать все значения в перечислении C...