Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 22
На сайте нет зарегистрированных пользователей

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

База данных междугородних телефонных разговоров на Delphi
Диплом - база данных поставщиков на Delphi (MS Sql Server)+ Пояснительна...
Моделирование процесса передачи данных по магистрали с основным и резерв...

Классы 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 April 22 2015 21:29:21 · 0 Комментариев · 3047 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
База игр
45 уроков по дельфи
index.php + мод ...
FreeSMS v1.3.1
Gold Submitter II...
IIIDTrans
Язык программиров...
Программирование ...
Image Browser [Ис...
Еext Editor
BIOS
Запрет гостям ск...
VFW
ATComponents
Анимированное поя...
Assistant
Пример OpenGL гра...
DiskInfo
Delphi 7 Enterpri...
Длинный заголовок...

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20261
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
Специализации шаблона
Классическое исклю...
Соединение абонент...
Объединение элемен...
Загрузка файлов CM...
Когда использовать...
Онлайн-казино
Игровые автоматы о...
Центробежный насос
Маска подсети
• Management — гло...
Установка WordPress
Содержание
Silver Fox - это д...
Начать играть в кл...
Передача информаци...
Лучшие азартные иг...
Файловые потоки бы...
Структурированные ...
Integer or real co...
Atari 7800 ProSystem
Этап опытной экспл...
Синхронизация буфе...
Широкие строковые ...
Процедура проверки...
Статистика



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


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