Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 60792
Реклама
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 13,122
новичок: BenderSergey1969
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Лабораторная работа по динамическим спискам на Turbo Pascal (удаление ду...
База данных - словарь терминов на Delphi + Пояснительная записка
База данных студентов на Delphi + Microsoft SQL Server

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Классы vector, list и string
Почему для хранения строк мы используем класс list, а для символов — класс vector? Точнее, почему для хранения последовательности строк мы используем класс list, а для хранения последовательности символов — класс vector? Более того, почему для хранения строки мы не используем класс string?



Также возможно вы думаете, что такая тема как http://display-project.ru/ никак не связана и даже не тематична с программированием. Хотя, может быть и связана.

В любом случае все-таки зайдите на сайт display-project.ru - там можно узнать много интересного про то, где есть умные стекла. Что означает вообще умные стекла, за сколько денег есть умные стекла - про это написано на сайте display-project.ru. Это важная для многих тема - умные стекла. Спасибо сайту display-project.ru за информацию про то, где есть умные стекла



Какой из этих вариантов выбрать для решения конкретной задачи? Для действительно простой задачи все эти варианты являются взаимозаменяемыми; иначе говоря, у них очень похожие интерфейсы. Например, имея итератор, мы можем перемещаться по элементам с помощью операции ++ и использовать оператор


* для доступа к символам. Если посмотреть на примеры кода, связанного с классом Document, то мы действительно можем заменить наш класс vector классом list или string без каких-либо проблем. Такая взаимозаменяемость является фундаментальным преимуществом, потому что она позволяет нам сделать выбор, ориентируясь на эффективность. Но, перед тем как рассматривать вопросы эффективности, мы должны рассмотреть логические возможности этих типов: что такого может делать каждый из них, чего не могут другие?

• Elem[]. Не знает своего размера. Не имеет функций begin(), end() и других контейнерных функций-членов. Не может систематически проверять выход за пределы допустимого диапазона. Может передаваться функциям, написанным на языке C или в стиле языка C. Элементы в памяти располагаются последовательно в смежных ячейках. Размер массива фиксируется на этапе компиляции. Операции сравнения (== и !=) и вывода (<<) используют указатель на первый элемент массива, а не на все элементы.
• vector. Может выполнять практически все, включая функции insert() и erase(). Предусматривает индексирование. Операции над списками, такие как insert() и erase(), как правило, связаны с перемещением элементов (что может оказаться неэффективным для крупных элементов и при большом количестве элементов). Может проверять выход за пределы допустимого диапазона. Элементы в памяти располагаются последовательно в смежных ячейках. Объект класса vector может увеличиваться (например, использует функцию push_back()). Элементы вектора хранятся в массиве (непрерывно). Сравнение элементов осуществляется с помощью операторов ==, !=, <, <=, > и >=.
• string. Предусматривает все обычные и полезные операции, а также специфические манипуляции текстами, такие как конкатенация (+ и +=). Элементы хранятся в смежных ячейках памяти. Объект класса string можно увеличивать. Сравнение элементов осуществляется с помощью операторов ==, !=, <, <=, > и >=.
• list. Предусматривает все обычные и полезные операции, за исключением индексирования. Операции insert() и delete() можно выполнять без перемещения остальных элементов. Для хранения каждого элемента необходимы два дополнительных слова (для указателей на узлы). Объект класса list можно увеличивать. Сравнение элементов осуществляется с помощью операторов (==, !=, <, <=, > и >=).
Как мы уже видели массивы полезны и необходимы для управления памятью на самом нижнем уровне, а также для обеспечения взаимодействия с программами, написанными на языке C. В отличие от этого, класс vector является более предпочтительным, потому что его легче использовать, к тому же он более гибкий и безопасный.


Что означает этот список отличий в реальном коде? Определите массивы объектов типа char, vector, list и string со значением "Hello", передайте его в функцию в качестве аргумента, напишите количество символов в передаваемой строке, попытайтесь сравнить его со строкой "Hello" в функции (чтобы убедиться, что вы действительно передали строку "Hello"), а затем сравните аргумент со строкой "Howdy", чтобы увидеть, какое из этих слов появляется в словаре первым. Скопируйте аргумент в другую переменную того же типа.
Опубликовал katy Апрель 23 2015 00:29:21 · 0 Комментариев · 1891 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
AUTOWEB
Crystal Button
De Knop
Распознавание иде...
FilesInfo
Учебник для продв...
PDPcheck
начисление процен...
CLR via C#
netBIOS
Web Регистрация
Доступа к БД Fire...
Программа рисует ...
База англоязычных...
ADVstatusbar
Библиотека програ...
Java в примерах -...
Х. М. Дейтел, П. ...
Swing. Эффектные...
около 291 статьи ...

Топ загрузок
Приложение Клие... 100532
Delphi 7 Enterp... 92141
Converter AMR<-... 20103
GPSS World Stud... 15546
Borland C++Buil... 13132
Borland Delphi ... 9197
Turbo Pascal fo... 7115
Калькулятор [Ис... 5221
Visual Studio 2... 5037
FreeSMS v1.3.1 3561
Случайные статьи
Посетите Web-узел ...
Вложенные таблицы
Разделение памяти ...
Abloy
Добавление отдельн...
Оценка рисков безо...
Использование авто...
Класс-адаптер для...
Сортировка простым...
Ajax - об этом дол...
Язык XSL как спосо...
Чтобы защитить рек...
Очереди с приоритетом
Компоненты доступа...
Авторизуйте только...
1. Служба DHCP Ser...
Установка Windows ...
Наследование
Домашний театр на ...
Инкапсуляция и С++
Пароль на страницу
Моникеры и композиция
VARIABLE (ОПРЕДЕЛИ...
Как оформлять курс...
Эмулятор микропроц...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?