Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
DarkJoker1992
148 / 4 / 0
Регистрация: 19.02.2013
Сообщений: 318
#1

Что такое векторы, и для чего нужны? - C++

04.04.2013, 17:16. Просмотров 2135. Ответов 6
Метки нет (Все метки)

читаю читаю но ответа в книге зачем нужны вектора так и не могу найти!!! пожалуйста напишите пример!! что бы я понял! спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 17:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что такое векторы, и для чего нужны? (C++):

Что такое static const и для чего он нужен? - C++
Что такое static const ? И для чего он нужен ?

Что такое полис и конечные автоматы и для чего используются в с++? - C++
ОЧЕНЬ ХОЧУ ЗНАТЬ. ПОМОГИТЕ!!!!!!!!!

Что за векторы и зачем они нужны - C++
Читал книгу по программированию на С++ и дошел до раздела векторы. Вот хотел у вас спросить за чем они нужны? и мне они напоминают массивы

Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала - C++
Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для...

Культура оформления кода: что такое enum? Где, когда и для чего уместно применять этот тип? - C++
не понял за что отвечают эти две строчки: enum ChosenOperation { ADD = 1, SHOW, SEARCH, EXIT }; enum SearchingCriteria { NAME =...

Что такое hash-таблицы, и зачем они нужны? - C++
Обьясните пожалуста по простому что такое хеш таблици и зачем они надо... пытался разобратся с ними сам, но ничего не получилось....

6
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
04.04.2013, 17:28 #2
Векторы - это реализация динамического массива в C++, т.е. такого массива, чья длина меняется в ходе программы. Называется вектор, потому что добавлять и удалять элементы можно только с одного конца.
0
DarkJoker1992
148 / 4 / 0
Регистрация: 19.02.2013
Сообщений: 318
04.04.2013, 18:25  [ТС] #3
Цитата Сообщение от fjay69 Посмотреть сообщение
Векторы - это реализация динамического массива в C++, т.е. такого массива, чья длина меняется в ходе программы. Называется вектор, потому что добавлять и удалять элементы можно только с одного конца.
Пример можешь написать? Пожалуйста

Добавлено через 51 минуту
жду ответа
0
ForEveR
В астрале
Эксперт С++
7985 / 4744 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
04.04.2013, 18:32 #4
fjay69, wat? Вы хоть посмотрели бы на функции вектора, прежде чем такое говорить http://en.cppreference.com/w/cpp/container/vector
C++
1
vec.insert(vec.begin(), value);
1
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
04.04.2013, 20:21 #5
Цитата Сообщение от ForEveR Посмотреть сообщение
fjay69, wat? Вы хоть посмотрели бы на функции вектора, прежде чем такое говорить
Сорри, затупил. Вектор в том плане, что у каждого его элемента только односторонняя связь.
Как сказали бы некоторые: у вас баттхёрт
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.04.2013, 20:36 #6
DarkJoker1992, веткторы понятие ёмкое, думаю ты имеешь ввиду STL контейнер std::vector. Думаю сразу бросилось в глаза словой контейнер, простыми словами это храниелище данных (тот же массив), причём преимущество вектора в том что можно сделать массив абсолютно любых типов данных (и даже тех которых нет в стандартной библиотеке). При этом алгоритмы обращения к элементам вектора для абсолютно либых типов данных будут одинаковы. Второй вкусностью векторов является тот факт что на их базе очень легко организовывать динамические массивы (программисту не надо думать как выделить или уменьшить память под хранимые элементы - за нас уже позаботились и при добавлении push_back вектор сам увеличит свой размер на 1 элемент, ровно как при удалении одного элемента pop_back Вектор сам сожмётся на 1 элемент)
Вот простой код для понимания вектора
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <ctime>
#include <vector>
#include <iostream>
using namespace std;
 
int main()
{
    int i, n;
    vector<int> array;
    srand(time(0));//Установили нач значение гнератора случайных чисел
    cout<<"Enter num elements : ";
    cin>>n;cin.get();
    for(i = 0; i < n; i++)
        array.push_back(rand() % 100 - 50);//добавлеяем в вектор чила от -50 до 50
    cout<<"Rand array : "<<endl;
    for(i = 0; i < array.size(); i++)
        cout<<array[i]<<" ";
    cout<<endl;
    cin.get();
    return 0;
}
2
Миниатюры
Что такое векторы, и для чего нужны?  
-=ЮрА=-
Заблокирован
Автор FAQ
04.04.2013, 20:46 #7
DarkJoker1992, обращу твоё внимание что вектор предусматривает простую индексацию
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
cout<<array[i]<<" ";
, т.е к его элементам можно обращаться так же как и к элементу массива. У векторов есть и другой способ доступа к элементам - итератор, вот скажем как здесь
Цитата Сообщение от ForEveR Посмотреть сообщение
vec.begin()
- правда здесь итератор служит для реализации метода insert, но итератор можно юзать и для прямого обращения к элементам вектора, поясняю чуть изменённым кодом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <ctime>
#include <vector>
#include <iostream>
using namespace std;
 
int main()
{
    int i, n;
    vector<int> array;
    vector<int>::iterator it;
    srand(time(0));//Установили нач значение гнератора случайных чисел
    cout<<"Enter num elements : ";
    cin>>n;cin.get();
    for(i = 0; i < n; i++)
        array.push_back(rand() % 100 - 50);//добавлеяем в вектор чила от -50 до 50
    cout<<"Rand array : "<<endl;
    for(it = array.begin(); it < array.end(); it++)
        cout<<(*it)<<" ";
    cout<<endl;
    cin.get();
    return 0;
}
Отработка будет аналогична отработке в посте 6-ть

Добавлено через 3 минуты

Не по теме:

В заключение пара ссылок
http://www.cplusplus.com/reference/vector/vector/
http://ru.wikipedia.org/wiki/Vector_(C%2B%2B)



Добавлено через 10 секунд

Не по теме:

В заключение пара ссылок
http://www.cplusplus.com/reference/vector/vector/
http://ru.wikipedia.org/wiki/Vector_(C%2B%2B)

1
04.04.2013, 20:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2013, 20:46
Привет! Вот еще темы с ответами:

Битовые поля структур: что такое и зачем они нужны? - C++
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.

Что такое compile-time алгоритмы и для чего они нужны? - C++
А есть от них хоть какая-то практическая польза? По-моему нет

Для чего нужны интерфейсы? - C++
Объясните на пальцах для чего нужны интерфейсы, как я понял они описывают методы и свойства, которые при наследовании классами должны были...

Для чего нужны указатели? - C++
Кто может объяснить для чего нужны указатели и смысл их? в интернете одна муть и еще для чего нужно new delete


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.