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

Стандартная библиотека C ++ и ее пространство имен. Используется вместе с [c ++].

2642
Почему «используется пространство имен std;» считается плохой практикой?

Другие говорили мне, что писать using namespace std;в коде неправильно, и что я должен использовать std::coutи std::cinнепосредственно вместо этого. Почему using namespace std;считается плохой практикой? Это неэффективно или существует риск объявления неоднозначных переменных (переменных, которые...

446
В чем разница между «STL» и «C ++ Standard Library»?

Кто-то обратил мое внимание на эту статью , утверждая, что (я перефразирую) термин STL неправильно используется для ссылки на всю Стандартную библиотеку C ++ вместо частей, взятых из SGI STL. (...) это относится к «STL», несмотря на то, что очень немногие люди все еще используют STL (который был...

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

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

200
cout не является членом std

Я тренируюсь с использованием нескольких файлов, заголовочных файлов и т. Д. Итак, у меня есть этот проект, который берет два числа и затем добавляет их. Довольно просто Вот мои файлы: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber();...

184
C читать файл построчно

Я написал эту функцию для чтения строки из файла: const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error...

176
Неубедительные примеры пользовательских распределителей C ++?

Какие есть веские причины отказаться std::allocatorот нестандартного решения? Сталкивались ли вы с ситуациями, когда это было абсолютно необходимо для корректности, производительности, масштабируемости и т. Д.? Какие-нибудь действительно умные примеры? Пользовательские распределители всегда были...

157
printf с помощью std :: string?

Насколько я понимаю, stringэто член stdпространства имен, так почему же происходит следующее? #include <iostream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s",...

147
Удаление элементов из std :: set во время итерации

Мне нужно пройти через набор и удалить элементы, которые соответствуют заранее определенным критериям. Это тестовый код, который я написал: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2,...

125
stdlib и цветной вывод на C

Я делаю простое приложение, требующее цветного вывода. Как я могу сделать свой вывод цветным, как emacs и bash? Меня не волнует Windows, поскольку мое приложение предназначено только для систем...

113
При использовании заголовков C в C ++ должны ли мы использовать функции из std :: или глобального пространства имен?

C в некоторой степени, не совсем так, является подмножеством C ++. Таким образом, мы можем использовать большинство функций / заголовков C в C ++, немного изменив имя ( stdio.hна cstdio, stdlib.hна cstdlib). На самом деле мой вопрос носит семантический характер. В коде C ++ ( с использованием...

113
Std :: map, отслеживающая порядок вставки?

В настоящее время у меня есть объект std::map<std::string,int>, в котором целочисленное значение хранится в уникальном строковом идентификаторе, и я ищу эту строку. Он делает в основном то, что я хочу, за исключением того, что не отслеживает порядок вставки. Поэтому, когда я перебираю карту,...

109
Почему rand ()% 6 смещен?

Читая, как использовать std :: rand, я нашел этот код на cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Что не так с выражением справа? Пробовал и работает...