Мне сказали, что писать using namespace std
в коде неправильно, и что вместо этого я должен использовать std::cout
и std::cin
напрямую.
Почему using namespace std
считается плохой практикой? Это неэффективно или существует риск объявления неоднозначных переменных (переменных, которые имеют то
Все, что я хочу сделать, это проверить, существует ли элемент в векторе или нет, чтобы я мог разобраться с каждым случаем.
if ( item_present )
do_this();
else
do_that();
Кто-то довел до моего сведения эту статью , которая утверждает, что (я перефразирую) термин STL неправильно используется для ссылки на всю Стандартную библиотеку C ++ вместо частей, которые были взяты из SGI STL.
...(. , , ) это относится к
У меня есть код, который выглядит так:
for (std::list::iterator i=items.begin();i!=items.end();i++)
{
bool isActive = (*i)->update();
//if (!isActive)
// items.remove(*i);
//else
other_code_involving(*i);
}
items.remove_if(CheckItemNotActive);
Я хотел бы удалить неактивные элементы сразу после их обновления, чтобы избежать повторного просмотра списка. Но если
...Какие действительно веские причины отказаться от std::allocator
в пользу нестандартного решения? Сталкивались ли вы с ситуациями, когда это было абсолютно необходимо для корректности, производительности, масштабируемости и т. Д.? Какие-нибудь действительно умные примеры?
Пользовательские распределители всегда были функцией Стандартной библиотеки, в
...В настоящее время у меня есть std::map
, который хранит целочисленное значение в уникальный строковый идентификатор, и я ищу строку. Он делает в основном то, что я хочу, за исключением того, что он не отслеживает порядок вставки. Поэтому, когда я
Рассмотрим этот код:
#include
void Example()
{
std::vector list;
TCHAR* pLine = new TCHAR[20];
list.push_back(pLine);
list.clear(); // is delete called here?
// is delete pLine; necessary?
}
ли список. clear () вызывать delete для каждого элемента? Я. е. я должен
...Ранее было несколько вопросов об экспорте класса, который содержит классы stl в отношении визуального предупреждения студии C4251: E. г. этот вопрос или этот вопрос. Я уже прочитал отличное объяснение на UnknownRoad.
Слепое отключение предупреждения кажется немного опасным, хотя это может
...Мне интересно узнать, как реализован std :: string и чем он отличается от строки c? Если в стандарте не указана какая-либо реализация, то любая реализация с объяснением была бы хороша тем, насколько она удовлетворяет строковому требованию, данному стандартом?
Я бы хотел перебрать std :: map с помощью BOOST_FOREACH и отредактировать значения. Я не могу понять это.
typedef std::pair IdSizePair_t;
std::map mmap;
mmap[1] = 1;
mmap[2] = 2;
mmap[3] = 3;
BOOST_FOREACH( IdSizePair_t i, mmap )
i.second++;
// mmap
... При написании кода на C ++ есть ли разница между:
#include
и
#include
кроме первого, который в основном содержится в пространстве имен std::
?
Есть ли какая-либо иная причина, кроме стандартов и стиля кодирования, использовать один поверх другого?
sqlite3_column_text возвращает const без знака char *, как мне преобразовать это в std :: string? Я пробовал std :: string (), но получаю ошибку.
код:
temp_doc.uuid = std::string(sqlite3_column_text(this->stmts.read_documents, 0));
Ошибка:
1>.\storage_manager.cpp(109) : error C2440: '' : cannot convert from 'const
... Я реализую функцию сохранения файлов в приложении Qt , используя C ++.
Я ищу способ проверить, существует ли уже выбранный файл перед записью в него, чтобы я мог предложить пользователю предупреждение.
Я использую std::ofstream
и не ищу решение 3230269583 Boost
Стандарт C ++, кажется, не делает никаких заявлений относительно побочных эффектов на емкость resize(n)
, с n < size()
или clear()
.
Это делает заявление о амортизированной стоимости push_back
и pop_back
- O (1)
Я могу представить реализацию, которая выполняет
...Я хотел бы знать, как кортеж реализован в стандартной библиотеке для C ++ 0x. Я попытался прочитать описание в руководстве по libstdc ++ , а затем прочитать список шаблонов , но понять, как это работает, очень сложно, особенно при чтении
...
у меня есть std::vector
и второй контейнер, содержащий итераторы или индексы (без ключей, я хочу постоянный доступ к элементу) к этому вектору для целей удаления. Предположим, у меня есть вектор из 1000 элементов, и я хочу стереть 200 из них.
Я знаю, что все сказали мне использовать fgets, а не get из-за переполнения буфера. Однако меня немного смущает третий параметр в fgets()
. Насколько я понимаю, fgets зависит от:
char * fgets ( char * str, int num, FILE *
... У меня есть std::queue
, который обернут как шаблонный класс, чтобы сделать потокобезопасную очередь. У меня есть две версии этого класса: одна, которая хранит типы значений, другая, которая хранит типы указателей.
Для типа указателя у меня возникают проблемы при удалении
...typedef unsigned char Byte;
...
void ReverseBytes( void *start, int size )
{
Byte *buffer = (Byte *)(start);
for( int i = 0; i < size / 2; i++ ) {
std::swap( buffer[i], buffer[size - i - 1] );
}
... как я могу обнаружить и перейти к следующей строке, используя std :: ifstream?
void readData(ifstream& in)
{
string sz;
getline(in, sz);
cout << sz <> v;
if (in.good())
cout << v << " ";
}
in.seekg(0, ios::beg);
sz.clear();
getline(in, sz);
...