Векторный класс в программировании на С ++ - PullRequest
3 голосов
/ 16 сентября 2010

Кто-нибудь может мне объяснить, что такое векторный класс? Мой профессор упомянул о предложении ниже в лекции. Шаблон: у каждого вектора есть параметр класса, который определяет, какой тип объекта будет использоваться этим экземпляром, обычно называемым T. Я не понимаю, что именно означают параметры класса?

Ответы [ 4 ]

13 голосов
/ 16 сентября 2010

Тип vector в C ++ по сути является динамическим массивом. Параметр class является типом элементов в vector. Например

int arr[];  // Static C++ array with int elements
vector<int> v; // dynamic array with int elements

В этом примере int - это тип параметра класса.

EDIT

Как отмечалось в нескольких комментариях, выбор «параметра класса» вашим учителем вводит в заблуждение. Правильнее будет сказать «параметр шаблона».

2 голосов
/ 16 сентября 2010

Вектор определяется как шаблон как:

template<typename T>
class Vector;

Чтобы использовать его, вам нужно создать экземпляр шаблона:

Vector<char> myVector;

Создание вектора эффективно создает новый класс. что эквивалентно тому, что вы получите, если бы заменили каждое вхождение T в определении шаблона на аргумент класса (в данном случае char)

Так что, если бы у нас был простой шаблон

template<typename T>
class DataHolder{ 
public:
 T data
}

Реализовано как:

DataHolder<char> myChar;

Эквивалентен классу:

class DataHolder
{
public:
 char data;
}
1 голос
/ 16 сентября 2010

Пример:

std::vector<int> v;

Это объявляет vector (динамический массив) из int элементов. Первоначально он содержит место для нулевых элементов.

Сеть содержит много ресурсов о базовом C ++. См. Например эту страницу для получения дополнительной информации о STL vector s.

0 голосов
/ 17 сентября 2010

эти два видео дают очень хорошее объяснение использования итераторов stl и его контейнеров.

http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Introduction-to-STL-with-Stephan-T-Lavavej/

http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-2-of-n/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...