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

98
Удаление элемента из вектора, находясь в диапазоне С ++ 11 для цикла?

У меня есть вектор IInventory *, и я просматриваю список, используя диапазон C ++ 11 для работы с каждым из них. Проделав кое-что с одним, я могу удалить его из списка и удалить объект. Я знаю, что могу вызвать deleteуказатель в любое время, чтобы очистить его, но как правильно удалить его из...

98
Каков правильный ответ для cout << a ++ << a ;?

Недавно в интервью был задан следующий вопрос объективного типа. int a = 0; cout << a++ << a; Ответы: а. 10 б. 01 с. неопределенное поведение Я ответил на вариант b, т.е. вывод будет «01». Но, к моему удивлению, позже интервьюер сказал мне, что правильный ответ - вариант c: undefined....

98
как преобразовать из int в char *?

Я знаю только один способ: #include <sstream> #include <string.h> using namespace std; int main() { int number=33; stringstream strs; strs << number; string temp_str = strs.str(); char* char_type = (char*) temp_str.c_str(); } Но есть ли способ с меньшим набором текста?...

98
Есть ли лучший способ выразить вложенные пространства имен в C ++ в заголовке

Я переключился с C ++ на Java и C # и думаю, что использование пространств имен / пакетов там намного лучше (хорошо структурировано). Затем я вернулся к C ++ и попытался использовать пространства имен таким же образом, но требуемый синтаксис в заголовочном файле ужасен. namespace MyCompany {...

98
Инициализация члена при использовании делегированного конструктора

Я начал пробовать стандарт C ++ 11 и нашел этот вопрос, который описывает, как вызвать ваш ctor из другого ctor в том же классе, чтобы избежать использования метода инициализации и т.п. Теперь я пробую то же самое с кодом, который выглядит следующим образом: hpp: class Tokenizer { public:...

98
Что означает очистка буфера?

Я изучаю C ++ и обнаружил то, чего не могу понять: Буферы вывода могут быть явно очищены для принудительной записи буфера. По умолчанию чтение cinсбрасывается cout; coutтакже сбрасывается при нормальном завершении программы. Итак, очистка буфера (например, буфера вывода): очищает ли это буфер,...

98
Почему мы копируем, а затем перемещаем?

Я где-то видел код, в котором кто-то решил скопировать объект и впоследствии переместить его в член данных класса. Это привело меня в замешательство, поскольку я думал, что весь смысл перемещения заключается в том, чтобы избежать копирования. Вот пример: struct S { S(std::string str) :...

98
Современный способ фильтровать контейнер STL?

Возвращаясь к C ++ после многих лет работы с C #, мне было интересно, каким будет современный - читайте: C ++ 11 - способ фильтрации массива, то есть как мы можем достичь чего-то похожего на этот запрос Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Чтобы...

98
экспериментальная :: ошибка компоновщика файловой системы

Я пытаюсь использовать новые функции C ++ 1z, фактически, в рамках разработки в рамках gcc 6.0. Если я попробую этот небольшой пример: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit";...

98
Какой заголовок я должен включить для size_t?

Согласно cppreference.com size_t определяется в нескольких заголовках, а именно <cstddef> <cstdio> <cstring> <ctime> И, начиная с C ++ 11, также в <cstdlib> <cwchar> Прежде всего мне интересно, почему это так. Разве это не противоречит принципу DRY ? Однако у...

98
Предупреждение C ++: деление двойного на ноль

Случай 1: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } Компилируется без предупреждений и выводов inf. Хорошо, C ++ может обрабатывать деление на ноль ( посмотреть вживую ). Но, Случай 2: #include <iostream> int main() { double d =...

97
Гарантировано ли разрешение gettimeofday () в микросекундах?

Я портирую игру, которая изначально была написана для Win32 API, в Linux (ну, портирую OS X порта Win32 в Linux). Я реализовал QueryPerformanceCounter, указав uSeconds с момента запуска процесса: BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount) { gettimeofday(&currentTimeVal,...

97
Как лучше всего проверить, существует ли файл на C ++? (кросс-платформенный)

Я прочитал ответы на вопрос , как лучше всего проверить, существует ли файл на C? (кросс-платформенный) , но мне интересно, есть ли лучший способ сделать это, используя стандартные библиотеки C ++? Желательно вообще без попытки открыть файл. Оба statи accessв значительной степени не могут быть...

97
Распутывание результата std :: type_info :: name

В настоящее время я работаю над некоторым кодом регистрации, который должен, среди прочего, печатать информацию о вызывающей функции. Это должно быть относительно просто, стандартный C ++ имеет type_infoкласс. Он содержит имя typeid'd класса / функции / и т. Д. но это искалечено. Это не очень...

97
Разбиение шаблонных классов C ++ на файлы .hpp / .cpp - возможно ли?

Я получаю ошибки при попытке скомпилировать класс шаблона C ++, который разделен между a .hppи .cppfile: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()'...

97
Как использовать QueryPerformanceCounter?

Недавно я решил, что мне нужно перейти от использования миллисекунд к микросекундам для моего класса Timer, и после некоторых исследований я решил, что QueryPerformanceCounter, вероятно, моя самая безопасная ставка. (Предупреждение о Boost::Posixтом, что он может не работать в Win32 API, меня...

97
Как узнать, где в C ++ возникло исключение?

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