Вопросы с тегом 'stl'

Библиотека стандартных шаблонов или STL - это библиотека C++ общих контейнеров, итераторов, алгоритмов и функциональных объектов. Когда C++ был стандартизован, большие части STL были приняты в стандартную библиотеку, и эти части в стандартной библиотеке также иногда ошибочно называются коллективно "STL".
7

push_back vs emplace_back

Я немного смущен относительно разницы между push_back и emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Как есть перегрузка push_back с использованием ссылки rvalue...
29 нояб. '10 в 12:04
22

Объединение двух std::vectors

Как объединить два std::vector s?
14 окт. '08 в 15:46
25

Каков самый простой способ инициализировать std::vector с помощью жестко закодированных элементов?

Я могу создать массив и инициализировать его следующим образом: int a[] = {10, 20, 30}; Как создать std::vector и инициализировать его так же элегантно? Лучший способ узнать: std::vector<int> ints; ints.push_back(10); ints.push_back(20);...
10 февр. '10 в 10:55
4

Добавление вектора к вектору

Предполагая, что у меня есть два стандартных вектора: vector<int> a; vector<int> b; Пусть также говорят, что у обоих есть около 30 элементов. Как добавить вектор b в конец вектора a? Грязный путь будет итерировать через b и добавить ...
31 мар. '10 в 9:33
13

Как удалить элемент из std::vector <> по индексу?

У меня есть std::vector <int> , и я хочу удалить n-й элемент. Как это сделать? std::vector<int> vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); vec.erase(???);
17 мая '09 в 17:59
14

Как найти, существует ли данный ключ в С++ std:: map

Я пытаюсь проверить, находится ли данный ключ на карте, и несколько не может этого сделать: typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f");//I'm n...
21 дек. '09 в 12:55
5

Какая разница между "STL" и "С++ Standard Library"?

Кто-то привнес эту статью на мое внимание, что претензии (я перефразирую), термин STL неправильно используется для обозначения всей стандартной библиотеки С++ а не части, которые были взяты из SGI STL. (...) он относится к "STL", несмотря на то, ч...
05 мар. '11 в 17:32
40

std::string форматирование, подобное sprintf

Мне нужно отформатировать std::string с sprintf и отправить его в поток файлов. Как я могу это сделать?
26 февр. '10 в 14:15
11

Инициализация статической std:: map <int, int> в С++

Каков правильный способ инициализации статической карты? Нужна ли нам статическая функция, которая будет ее инициализировать?
26 сент. '08 в 10:10
13

Итерация над std::vector: неподписанная и подписанная индексная переменная

Каков правильный способ итерации над вектором в С++? Рассмотрим эти два фрагмента кода, это прекрасно работает: for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } и этот: for (int i=0; i < polygon.size(); i++) { sum...
03 янв. '09 в 16:52
13

Почему С++ STL не предоставляет никаких "древовидных" контейнеров?

Почему С++ STL не предоставляет никаких "древовидных" контейнеров и что лучше всего использовать вместо этого? Я хочу сохранить иерархию объектов как дерево, а не использовать дерево в качестве повышения производительности...
15 окт. '08 в 18:52
12

Сортировка вектора в порядке убывания

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

Как проверить, что элемент находится в std:: set?

Как вы проверяете, что элемент находится в наборе? Существует ли более простой эквивалент следующего кода: myset.find(x) != myset.end()
09 нояб. '09 в 13:46
8

Почему я не могу создать вектор ссылок?

Когда я это сделаю: std::vector<int> hello; Все отлично работает. Однако, когда я делаю вместо него вектор ссылок: std::vector<int &> hello; Я получаю ужасные ошибки, такие как "ошибка C2528:" указатель ": указатель на ссылку яв...
28 мая '09 в 18:04
14

Лучший способ извлечь подвектор из вектора?

Предположим, что у меня есть std::vector (назовем его myVec) размером N. Самый простой способ построить новый вектор, состоящий из копии элементов X через Y, где 0 <= X <= Y <= N-1 & le; Например, myVec [100000] через myVec [100999] в в...
07 янв. '09 в 18:56