Std что это
Перейти к содержимому

Std что это

  • автор:

Std что это

Англо-русский словарь технических аббревиатур . 2011 .

Смотреть что такое «STD» в других словарях:

STD — steht für: São toméischer Dobra, São Tomé und Príncipe, ISO 4217 sacrae theologiae doctor, der lateinische akademische Titel für Theologen Abkürzung der New Yorker Börse für die Santander Bankengruppe (Grupo Santander) Santo Domingo, IATA Code… … Deutsch Wikipedia

Std. — Std. 〈Abk. für〉 Stunde * * * Std. = ↑ Stunde. * * * Std. = Stunde … Universal-Lexikon

std. — std. std. written abbreviation for standard * * * std. ► WRITTEN ABBREVIATION for STANDARD(Cf. ↑standard) noun … Financial and business terms

std — std; STD; … English syllables

STD — may refer to:* Sexually transmitted disease * Doctor of Sacred Theology, ( Sacrae Theologiae Doctor ) * São Tomé and Príncipe dobra, the ISO 4217 code for the currency of São Tomé and Príncipe * Standards or Standardization * Standard deviation,… … Wikipedia

STD — [ˌes ti: ˈdi:] n [U and C] medical sexually transmitted disease a disease that one person passes to another through having sex, such as ↑AIDS or ↑herpes … Dictionary of contemporary English

STD — (sexually transmitted disease) (Medicine) disease that is most often contracted through sexual contact (e.g. gonorrhea, syphilis, AIDS, and genital herpes) … English contemporary dictionary

Std. — Std. = Stunde … Die deutsche Rechtschreibung

STD — ► ABBREVIATION 1) sexually transmitted disease. 2) Brit. subscriber trunk dialling … English terms dictionary

Std что это

доктор Священного Богословиязаболевание, передаваемое половым путем

• Souvenir picked up in Amsterdam's red-light district: Abbr. • Abbr. in a Bible's name • AIDS, e.g. • Approved model: Abbr. • Average: Abbr. • Avg. •. смотреть

1) связь, брит. сокр. от subscriber trunk dialling2) эк. (по ISO 4217: международный стандартный код добры)See:dobra, ISO 42173) страх., эк. тр. сокр. . смотреть

STD: translation The ISO 4217 currency code for the Sao Tome & Principe Dobra. Bloomberg Financial Dictionary * * * STD STD noun [uncountabl. смотреть

STD: übersetzungI STD [Abkürzung für englisch sexually transmitted diseases], Geschlechtskrankheiten.II STD [Abk. für Standard], Normung.

[standard] — стандарт || стандартный* * *сокр.1) [standard] стандарт2) [system test division] отдел испытаний систем* * *• отдел испытаний систем• стан. смотреть

STD: translation noun STD is used before these nouns: ↑transmission

(State-Transition Diagram) диаграмма переходов (состояний) методология моделирования последующего функционирования системы на основе её предыдущего и текущего функционирования см. тж. DFD, ERD. смотреть

STD I Sacrae Theologiae doctor (doctor of sacred theology) noun доктор Свя-щенного Богословия II Sexually Transmitted Disease noun заболевание, передава-емое половым путем<br>. смотреть

I сокр. от Sacrae Theologiae Doctor (doctor of sacred theology) доктор Священного Богословия II сокр. от Sexually Transmitted Disease заболевание, передаваемое половым путем. смотреть

сокр. от soumission des tâches à distanceдистанционный ввод заданий

сокр. от superconductive tunneling device — туннельный сверхпроводящий элемент II сокр. от state-transition diagram — диаграмма переходов (из одних состояний в другие ). смотреть

I superconductive tunneling device туннельный сверхпроводящий элемент II state-transition diagram диаграмма переходов ( из одних состояний в другие )

англ. сокр. от sexually transmitted diseases болезни, передаваемые половым путём

short-term disability insurance

сокр. от steady устойчивое состояние (знак для анализа)

salinity, temperature, depth

сокр. от steady устойчивое состояние (знак для анализа)

сокр. от subscriber trunk dialling

сокр. от standard стандарт

сокр. от standard стандарт

сокр. от standard стандарт

сокр. от standard (воен.)

STD SAO TOME DOBRA

добра (стандартная денежная единица Сао Томе и Принсипи); = 100 сентимо. Ввоз и вывоз национальной валюты запрещен. В денежном обращении находятся банкноты в 50, 100, 500, 1000 добр, а также монеты в 1, 2, 5, 10, 20 добр и 50 сентимо; = Db . смотреть

STD SAO TOME DOBRA

добра (стандартная денежная единица Сао Томе и Принсипи); = 100 сентимо. Ввоз и вывоз национальной валюты запрещен. В денежном обращении находятся банкноты в 50, 100, 500, 1000 добр, а также монеты в 1, 2, 5, 10, 20 добр и 50 сентимо; = Db. смотреть

Русские Блоги

Стандартная библиотека шаблонов,Лаборатория HPОбщий термин для серии разработанного программного обеспечения. Он был разработан Александром Степановым, Мэн Ли и Дэвидом Массером во время работы в HP Labs. Возможно, это самый скучный термин для обозначения одного из самых захватывающих инструментов в истории. По сути, STL — это набор «контейнеров». Эти «контейнеры» включают список, вектор, набор, карту и т. Д. STL также представляет собой набор алгоритмов и других компонентов. Коллекция «контейнеров» и алгоритмов здесь относится к шедеврам многих умных людей в мире за многие годы.Цель STL — стандартизировать компоненты так, чтобы отпала необходимость их повторной разработки., Вы можете использовать готовые компоненты.STL теперь является частью C ++, Так что ничего дополнительно устанавливать не нужно.

STL встроен в вашКомпилироватьВнутри системы. Существует множество версий STL, самые распространенные из них — HP STL, PJ STL, SGI STL и т. Д.

составная часть

STL можно разделить на шесть частей: контейнеры, итераторы, распределители, адаптеры, алгоритмы и функторы.

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

Контейнерная часть в основном состоит из файлов заголовков <vector>, <список>, <deque>, <set>, <map>, <stack> и <queue>. Для некоторых часто используемых контейнеров и адаптеров контейнеров (могут рассматриваться как контейнеры, реализованные другими контейнерами) вы можете суммировать соответствие между ними и соответствующими файлами заголовков в следующей таблице.

Последовательный контейнер

вектор(вектор) Постоянно сохраняемые элементы <vector>

Список(список) Двусвязный список узлов, каждый узел содержит элемент <list>

Deque(deque) Массив указателей на разные элементы, хранящийся последовательно <deque>

Адаптер контейнера

Стек(стек) Расположение значений "последний пришел — первый ушел" <stack>

очередь(очередь) Расположение значений «первым пришел — первым ушел» <очередь>

Приоритетная очередь(priority_queue) Очередь, в которой порядок элементов определяется определенным предикатом, действующим на сохраненные пары значений <queue>

Ассоциативный контейнер

набор(set) Красно-черное дерево, состоящее из узлов. Каждый узел содержит элемент. Узлы расположены в определенном предикате, который действует на пару элементов. Никакие два разных элемента не могут иметь одинаковый порядок. <set>

Множественный набор(мультимножество) допускает существование набора из двух элементов в одном порядке <set>

Картография(карта) Набор пар <ключ, значение>, упорядоченных с определенным предикатом, действующим на пару ключей <map>

Множественное отображение(multimap) позволяет парам ключей иметь одинаковый порядок сопоставления <map>

ИтераторЭто самая основная часть с точки зрения функции, но ее сложнее понять, чем две предыдущие (по крайней мере, автор так считает).разработка программного обеспеченияСуществует базовый принцип, согласно которому все проблемы можно упростить, добавив косвенный уровень.Это упрощение достигается в STL с помощью итераторов. Короче говоря, итераторы используются в STL для соединения алгоритмов и контейнеров, выступая в качестве своего рода клея. Почти все алгоритмы, предоставляемые STL, работают через итераторы для доступа к последовательности элементов.Каждый контейнер определяет свой собственный итератор для доступа к элементам в контейнере.

ИтераторЧасть в основном состоит из файлов заголовков <utility>, <iterator> и <memory>. <utility> — это небольшой файл заголовка, который включает объявления в нескольких шаблонах, используемых в STL, <iterator> предоставляет множество методов для итераторов, а описание <memory> очень сложно. Он необычным образом служит контейнером.Распределение элементовПространство для хранения, но также предоставляет механизм для временных объектов, генерируемых во время выполнения определенных алгоритмов. Основная часть <memory> — этоКласс шаблонараспределитель, который отвечает за создание распределителя по умолчанию во всех контейнерах.

STL предоставляет около 100 реализацийалгоритмНапример, алгоритм for_each вызовет указанную функцию для каждого элемента в указанной последовательности, stable_sort будет стабильно сортировать последовательность в соответствии с указанными вами правилами и так далее. Таким образом, если мы знакомы с STL, многие коды можно значительно упростить, и только вызовом одного или двух шаблонов алгоритмов можно выполнить необходимые функции и значительно повысить эффективность.

алгоритмЧастично в основномфайл головы<алгоритм>, <число> и <функционал>. <algorithm> — самый большой из всех файлов заголовков STL (хотя он хорошо понят), он состоит из множества шаблонных функций, которые можно рассматриватьКаждая функция в значительной степени независимаДа, обычно используемые функции включают сравнение, обмен, поиск, операции обхода, копирование, изменение, удаление, реверсирование, сортировку, слияние и т. Д. <numeric> имеет небольшой размер и включает в себя только несколько шаблонных функций, которые выполняют простые математические операции над последовательностью, включая некоторые операции над последовательностью сложения и умножения. <functional> определяет некоторыеКласс шаблонаОбъявитьФункциональный объект

Во-вторых, почему некоторые компании не разрешают использование C ++ STL?

Я слышал от друзей, что их компания не позволяет использовать C ++ STL. Я не понимаю, почему им нельзя пользоваться? Это из-за безопасности и эффективности? Этого не должно быть. Я торопился и не спросил внимательно. Вы можете это объяснить? Не знаете, что такое Boost?

Поговорим о недостатках нескольких STL, хотя все они проявляются в более экстремальных ситуациях, они все равно будут встречаться в некоторых крупных проектах.

1. Раздутие кода

Каждый экземпляр класса шаблона будет создавать отдельный код, например
std :: vector <std :: string>, std :: vector <int>, после компиляции будут сгенерированы два кода. В VC2008 каждый код имеет размер около 3-4 КБ, это потому что вектор относительно прост и имеет меньше кода. Если это карта, он будет генерировать код размером 30-50 КБ, потому что на карте есть сложное красно-черное дерево. Для кода класса обработки данных обычно определяется множество различных структур. Размещение различных структур в разных контейнерах создаст экземпляры многих типов кода. Я видел проект, в котором таких векторов есть сотни.

2. Эффективность использования памяти (в качестве примера возьмем vc ++ 2008)

STL относительно неэффективен с точки зрения эффективности использования памяти. Например, std :: string, его sizeof составляет около 28, потому что он имеет встроенный 16-байтовый массив, который используется для оптимизации небольших строк, то есть меньше чем 16 Байтовая строка будет занимать не менее 28 байтов памяти. Если это 17-байтовая строка, она будет занимать 28 байтов + дополнительная выделенная строковая память. Дополнительная выделенная память — это блок кучи, и имеется много Это занимает примерно вдвое больше памяти, чем сохранение строки с символом *.
и map <>, каждый узел карты является частью независимо выделенной памяти, если это map <int, int>, это очень трагично, чтобы сохранить int It потребляет десятки байтов, что расточительно.
Если количество элементов равно одному миллиону, использование памяти является значительным. В этом случае рекомендуется реализовать распределитель и использовать его в качестве пула памяти.

3. Проблема с глубоким копированием

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

4. Неявное преобразование типа

Например, есть функция
void doSomething(const std::string &str);
при звонке
doSomething("hello");
может быть скомпилирован и выполнен, но он создаст временный анонимный экземпляр std :: string, снова скопирует "hello" и затем уничтожит его после завершения вызова. Если это происходит внутри тела цикла, это может повлиять на производительность.

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

Я не призываю не использовать STL, но хочу полностью понять преимущества и недостатки STL и сделать выбор на основе сценариев приложений.

1. Производительность

С реализацией стандарта C ++ 11 в основных компиляторах с move и rvalue производительность STL не будет узким местом. С другой стороны, если ваша программа требует максимальной производительности, зачем выбирать C ++? Вы по-прежнему цените абстракционные возможности C ++ (по сравнению с C), верно? Поскольку вы цените больше, чем просто производительность, о какой производительности можно говорить?
Конечно, вы также можете реализовать набор вещей STL самостоятельно (например, EA самостоятельно построила набор EA STL), но кто отвечает за развитие? Вы должны сделать много тестов, написать много тестовых примеров и заявить участникам проекта, что «Я использую свой STL, мои руки больше не болят, мои ноги больше не болят . », иначе, когда вы уйдете , этот материал выйдет наружу, потомки его медленно выбросили, как комок.
В этот раз, как насчет снижения производительности на несколько процентов? Разве не хорошо быть с женой и детьми?

2. Не знаком с STL

Как упомянули несколько друзей наверху, большинство программистов на стороне сервера переведены из C. Они не имеют хорошего контроля над некоторыми расширенными функциями C ++ (включая реализацию STL), поэтому они, естественно, предпочтут использовать C • Способ использования C ++.

3. Отладка

Если отладка без STL проста, почему так много книг по отладке? И хорошо продается.

В-третьих, поймите std и stl C ++.

1. Во-первых, проясните, что std — это имя пространства имен.

2. Во-вторых, ясно, что STL — это аббревиатура Standard Template Library, то есть стандартная библиотека шаблонов.

Связь между 3 и 2: Фактически, все идентификаторы стандартной библиотеки C ++ определены в пространстве имен std. А STL размещен в стандартной библиотеке C ++. То есть оба они принадлежат стандартной библиотеке C ++. STL является частью контента, std используется как внешнее имя.

4. Например, общие библиотечные функции C ++ также нуждаются в #include <Iosstream> std :: cout. Это больше похоже на библиотечную функцию.
Функция в STL C ++ использует #include <vector>, это больше похоже на контейнер.

Четыре, c ++ 0x c ++ 11 несколько функций:

Встроенная поддержка регулярных выражений?

Различные анонимные функции?

Другое использование auto — это вывод типов данных из контекста?

Пять, c ++ 11 STL,Что нового в библиотеке STL в C ++ 11

Более значительным изменением в C ++ 11 является предыдущийНекоторые функции в библиотеке boost официально стандартизированы и включены в STL.Теперь эта статья кратко представит его.

Справочная оболочка

Когда параметр функции шаблона является универсальным типом, невозможно определить, следует ли передавать по значению или по ссылке.По умолчанию используется метод передачи по значению. Это то, что мы можем использоватьstd::refЯвно укажите, что функция шаблона создается по ссылке.

Умные указатели

В основном представлены интеллектуальные указателиshared_ptr、weak_ptr, Unique_ptr три, из которыхshared_ptr и weak_ptrЭто объекты приложения в библиотеке boost. Я уже писал статьи по теме, чтобы познакомить их с ними раньше, поэтому я не буду их здесь рассказывать.

Недавно представленный unique_ptr и ранее представленная библиотека ускоренияscoped_ptrОн похож, но есть похожий auto_ptr в самом STL.Основные различия между ними:

auto_ptr может поддерживать операцию ‘=’, а также может использоваться как возвращаемое значение функции

unique_ptr не поддерживает операцию ‘=’ и может использоваться как возвращаемое значение функции

scoped_ptr не поддерживает операцию ‘=’ и не может использоваться в качестве возвращаемого значения функции

Для сравнения, у unique_ptr меньше полномочий, чем у auto_ptr, и нет ограничений, что scope_ptr нельзя использовать в качестве возвращаемого значения.Он наиболее подходит для использования и может полностью заменить auto_ptr.

Функтор

В библиотеку stl также включены четыре библиотеки boost:

из ихфункция и привязкаЯ уже представил его во введении к библиотеке ускорения. Он поддерживаетautoПосле ключевого слова легче создать функцию с помощью связывания. Нам нужно только использовать предложение для создания функтора функции-члена.

PS: При использовании bind вам необходимо добавить использование std :: placeholder, иначе компиляция сообщит о синтаксической ошибке.

Но я чувствую, что привязка в основномлямбда-выражениеЭто секунда. В приведенном выше примере лямбда-выражение записывается следующим образом:

Поскольку лямбда-выражения являются синтаксическим сахаром, они более читабельны (Я чувствую, что простота почти близка к анонимной функции C #), нет заполнителей, таких как _1 и _2, и вызывающий метод функции также явно вызывается напрямую, что более интуитивно понятно.

А result_of кажется практически бесполезным после введения auto. Гораздо проще использовать auto напрямую.

контейнер

Контейнер в основном добавляет следующее:

unordered_set и unordered_map

из ихкортеж и массив — это в основном библиотеки, связанные с ускорениемСтандартизированные, unordered_set и unordered_map устанавливаются и отображаются в виде хеш-таблиц для обеспечения более высокой производительности запросов. Метод использования аналогичен исходной версии двоичного дерева, поэтому я не буду его здесь описывать.

Регулярное выражение

УвеличениеБиблиотека регулярных выражений наконец стандартизирована, Если вы хотите использовать обработку строк, вам не нужно везде искать сторонние библиотеки регулярных выражений. Однако в настоящее время VC не поддерживает символы без экранирования, такие как C # (может gcc), и регулярные выражения в коде по-прежнему очень трудно читать. Я надеюсь, что MS сможет поддерживать необработанный строковый литерал как можно скорее.

УвеличениеБиблиотека потоков также стандартизирована, Кроме того, packaged_task, подобная библиотеке .Net TPL, также стандартизирована. Поскольку в ней есть что рассказать, я напишу статью, чтобы представить ее, поэтому я не буду говорить об этом здесь.

Функция времени

Фактически, стандартная библиотека языка C предоставляет функцию времени, но ее чрезвычайно сложно использовать. Теперь функция времени BoostChrono стандартизирован, Хотя он все еще не так прост в использовании, как TimeSpan .Net, по крайней мере, он намного лучше, чем стандартный набор C.

Другая функция даты, Boost.Date, похоже, еще не стандартизирована, поэтому, если вы хотите использовать функции, связанные с датой, вы можете использовать только библиотеку boost.

Шесть, усиление

Библиотека BoostПортативный, обеспечиваетИсходный кодБиблиотека C ++ какВозврат к стандартной библиотеке, Является одним из двигателей процесса стандартизации C ++.Библиотека Boost была инициирована членом Рабочей группы библиотеки комитета по стандартам C ++., Некоторые из них, как ожидается, станут содержимым стандартной библиотеки C ++ следующего поколения. Она имеет большое влияние в сообществе C ++ и является полностью «квази» стандартной библиотекой. Повышение за счетКроссплатформенностьУпор на стандартный C ++ не имеет ничего общего с платформой письма. Большинство функций библиотеки boost должны включать только соответствующие файлы заголовков, некоторые (например,Регулярное выражениеБиблиотеки, библиотеки файловой системы и т. Д.) Необходимо связывать библиотеки. Но в Boost также есть много экспериментальных вещей, которые нужно использовать с осторожностью в реальной разработке.

Библиотека Boost — это некий C ++, который предоставляет расширения для стандартной библиотеки языка C ++.БиблиотекаОбщий термин.

Библиотека Boost разработана и поддерживается общественной организацией Boost. Его цель — предоставить бесплатную, рецензируемую и переносимую библиотеку для программистов на C ++.Библиотека BoostОн может отлично работать со стандартной библиотекой C ++ и предоставлять для нее расширенные функции. Библиотека Boost использует лицензию Boost для авторизации использования.

Одним из первоначальных намерений сообщества Boost было предоставить эталонную реализацию для стандартизации C ++. Доус, инициатор сообщества Boost, является членом Комитета по стандартам C ++. При разработке библиотеки Boost сообщество Boost также добилось плодотворных результатов в этом направлении. В стандартной библиотеке C ++ TR1, представленной на рассмотрение, десять библиотек Boost стали кандидатами на роль стандартной библиотеки. В обновленном TR2 в него добавили больше библиотек Boost. В некотором смысле библиотека Boost стала квазистандартной библиотекой, имеющей практическое значение.

Вы можете загрузить библиотеки Boost C ++, чтобы установить библиотеку boost. Большинству функций библиотеки boost необходимо включать только соответствующие файлы заголовков, а некоторым (например, библиотеки регулярных выражений, библиотеки файловой системы и т. Д.) Нужны библиотеки ссылок. Есть много промышленных библиотек, таких как библиотеки графов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *