Свързани публикации 'stl'
Изследване на двустранни опашки (Deque) в C++ Standard Template Library (STL)
Двустранните опашки, известни също като deques, са важна структура от данни в компютърните науки. В C++ Библиотека със стандартни шаблони (STL) , класът deque осигурява гъвкаво изпълнение на двустранни опашки. Deques комбинират характеристиките както на стекове, така и на опашки, позволявайки ефективно вмъкване и изтриване на елементи в двата края. Тази статия ще ви запознае с контейнера deque в C++ STL, обяснявайки неговата функционалност, предимства и общи методи.
Общ преглед на..
C++ Standard Template Library (STL): Изчерпателен преглед
Библиотеката със стандартни шаблони (STL) е съществена част от езика за програмиране C++. Това е колекция от шаблонни класове и функции, които предоставят широка гама от структури от данни и алгоритми за ефективно и повторно използвано разработване на код. STL се състои от четири основни компонента: алгоритми, контейнери, функции и итератори. В тази статия ще разгледаме подробно всеки един от тези компоненти, като подчертаем техните характеристики и предимства.
Алгоритми : STL..
Свързани въпроси 'stl'
Кога два елемента от STL набор се считат за идентични?
От cplusplus.com:
template < class Key, class Compare = less<Key>,
class Allocator = allocator<Key> > class set;
„Сравнение: Клас за сравнение: Клас, който приема два аргумента от същия тип като елементите на...
3836 изгледи
schedule
22.09.2022
Как мога да се уверя, че разпределената памет за std::vector се връща на операционната система след освобождаване?
Кодът по-долу извиква foo и използвайте while(1) , за да наблюдавате използването на паметта. Както знам, след отпечатването на „завършено“, var d се освобождава и STL контейнерът сам ще освободи пространството за данни (купчина).
#include...
541 изгледи
schedule
17.09.2022
Защо да използвате rbegin() вместо end() - 1?
Чудя се какви са предимствата от използването на rbegin() вместо end() - 1 за STL контейнери.
Например, защо бихте използвали нещо като:
vector<int> v;
v.push_back(999);
vector<int>::reverse_iterator r = v.rbegin();...
12445 изгледи
schedule
16.09.2022
Как да поддържате агрегати в STL или STL-подобна библиотека
Как да въведем поддръжката на агрегатна инициализация за правилното им изграждане в (напр.) STL контейнери? Имам предвид нещо като:
struct A { int i; char c; };
std::list< A > l; // empty
l.insert(std::memberwise, 1, '2');
// <=>...
104 изгледи
schedule
16.09.2022
std::map функция за сравнение и NULL
Написах функция за сравнение за std::map, за да мога да имам потребителски типове ключове.
std::map<GGString *, GGObject *, GGDictionaryMapCompare> _map;
...
class GGDictionaryMapCompare
{
public:
bool operator()(GGString * lhs,...
1671 изгледи
schedule
23.09.2022
C++ STL: списък с указатели - итераторът няма достъп?
Боря се със STL списък, който съдържа указатели на моя обект "Object".
Декларирах:
list<Object*> objectlist;
и вмъкнат чрез:
this->objectlist.push_back(new Object(address,value,profit));
и се опита да повтори като в карти...
38595 изгледи
schedule
01.10.2022
Какъв е правилният синтаксис за функция член на шаблонен клас, за да върне тип структура?
В Съхраняване на C++ дефиниции на шаблонни функции в .CPP файл може да се научи как да се съхранява изпълнение на шаблон в .cpp. Въпреки това не успях да го направя, ако типът връщане е структура, която е дефинирана вътре в класа. Вижте,...
22 изгледи
schedule
30.09.2022
Асоциативна карта на ключ към ключ в C++
Търся нещо като карта "Ключ към ключ" в C++.
Намерението ми е следното:
Всеки ключ - от "лявата" или "дясната" страна е уникален
Ключът от лявата страна може да бъде търсен от ключа от дясната страна и обратно
Като пример и за да...
1030 изгледи
schedule
29.09.2022
std::erase и std::remove комбинация за изтриване на конкретен елемент не работи за конкретен пример
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> a = {1,2,3,7,1,5,4};
vector<int> b = {6,7,4,3,3,1,7};
a.erase(remove(a.begin(),a.end(),a[0]),a.end());...
2519 изгледи
schedule
04.10.2022
Прикачване на char буфер към вектор‹char› в STL
Какъв е правилният (и ефективен) начин за прикачване на съдържанието на C буфер ( char * ) към края на std::vector<char> ?
20154 изгледи
schedule
10.10.2022
Съхраняване на обекти в STL вектор - минимален набор от методи
Какво е "минимална рамка" (необходими методи) на сложен обект (с изрично неправилни вътрешни данни), който искам да съхранявам в STL контейнер, напр. <vector> ?
За моите предположения (пример за сложен обект Doit):
#include...
1662 изгледи
schedule
11.10.2022
Превключете от STL на Microsoft към STLport
Използвам доста STL в критичен за производителността C++ код под Windows. Един възможен "евтин" начин да получите допълнителна производителност би бил да преминете към по-бърза STL библиотека.
Според тази публикация STLport е по-бърз и използва...
12386 изгледи
schedule
14.10.2022
Защо std::ends причинява неуспешно сравнение на низове?
Прекарах около 4 часа вчера, опитвайки се да поправя този проблем в моя код. Опростих проблема до примера по-долу.
Идеята е да съхраните низ в поток от низове, завършващ със std::ends, след което да го извлечете по-късно и да го сравните с...
2389 изгледи
schedule
24.11.2022
C++: Присвояване на стойности на непрекъснати индекси във вектори?
Ако искам да декларирам вектор с неизвестен размер, тогава присвоя стойности на индекс 5, индекс 10, индекс 1, индекс 100 в този ред. Лесно ли е изпълнимо във вектор?
Изглежда, че няма лесен начин. Защото, ако инициализирам вектор без размер,...
1938 изгледи
schedule
30.10.2022
индекс или позиция в std::set
Имам std::set от std::string. Имам нужда от "индекс" или "позиция" на всеки низ в набора, това смислено понятие ли е в контекста?
Предполагам, че find() ще върне итератор към низа, така че въпросът ми може да бъде по-добре формулиран като: "Как да...
19327 изгледи
schedule
07.11.2022
Какъв е смисълът на STL?
Програмирах c++ от около година и когато разглеждам, виждам много препратки към STL.
Може ли някой да ми каже какво прави?
и предимствата и недостатъците от това?
също какво ми дава над borlands VCL или MFC?
Благодаря
3137 изгледи
schedule
16.10.2022
Подаване на std::string в API на библиотека
В момента изграждаме API за определена библиотека. Част от интерфейса изисква библиотеката да получава и връща към потребителските класове като вектор и низ.
Когато се опитвате да симулирате използването на библиотеката в прост сценарий, в режим...
2687 изгледи
schedule
15.11.2022
Каква е стойността по подразбиране на итератора?
За всеки STL контейнер, който използвам, ако декларирам итератор (от този конкретен тип контейнер), използвайки конструктора по подразбиране на итератора, към какво ще бъде инициализиран итераторът?
Например имам:
std::list<void*>...
54737 изгледи
schedule
18.11.2022
STL обектите използват локал на C Runtime Library за преобразуване с плаваща запетая, когато използват _ENABLE_PER_THREAD_LOCALE?
Локалът на C Runtime е зададен от setlocale . Локалът на стандартната C++ библиотека (STL) се задава от класа std::locale и може да се задава на отделни STL обекти като std::istringstream и т.н.
Функцията...
1541 изгледи
schedule
16.10.2022
Кой STL C++ контейнер да използвам за списък с фиксиран размер?
Имам консумиращо приложение, което трябва да съхрани максимум 100 обекта в списък, за да подаде обратно извикване за обработка, тъй като ще бъде излишно да пазя стари данни, ако потребителят не навакса. Когато пристигнат нови данни, те могат просто...
15973 изгледи
schedule
28.11.2022