Форум программистов, компьютерный форум CyberForum.ru

Вывод содержимого вектора на экран - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 100, средняя оценка - 4.96
lelik759
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 29
01.11.2009, 17:02     Вывод содержимого вектора на экран #1
Добрый день ! Есть задача :

Объявите вектор a_vec с элементами целого типа и заполните его произвольными значениями.Предположим,что размер вектора неизвестен,однако,несмотря на это,необходимо выполнить вывод вектора на экран,объявите итератор для vector<int>.Выполните вывод содержимого вектора a_vec на экран,использую при этом операцию разыменования итератора ,а так же значение итератора начального элемента a_vec.begin() и элемента следующего за конечным a_vec.end().

Оформите полученную программу в виде самостоятельной функции show_vector().Эта функция должна принимать ссылку навектор и выводить этот вектор на экран. посмотрите правильно ли я сделал первую часть задания ?

C++
1
2
3
4
5
6
7
8
9
10
# include <vector>
# include <algorithm>
 
int main() {
   std::vector<int> a_vec(4,8);
   std::cout << "Сoдержимое вектора : " ;
   std::copy(a_vec.begin(), a_vec.end(), std::ostream_iterator<int>(std::cout, " "));
 
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2009, 17:02     Вывод содержимого вектора на экран
Посмотрите здесь:

C++ Чтение файла и вывод его содержимого на экран
буфер (вывод содержимого на экран) C++
Вывод вектора на экран (классы) C++
Вывод значений вектора на экран C++
Вывод содержимого файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Даемоник
 Аватар для Даемоник
41 / 41 / 3
Регистрация: 22.05.2009
Сообщений: 97
01.11.2009, 17:37     Вывод содержимого вектора на экран #2
А что должно появиться на экране? У меня вылезло 8 8 8 8.
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
01.11.2009, 18:21     Вывод содержимого вектора на экран #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
using namespace std;
void show_vector( vector<int>&a)
{
    for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
        cout<<*it;
}
int main()
{
    int x;
    vector<int>a;
    while (cin>>x)
        a.push_back(x);
    show_vector(a);
    return 0;
}
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
01.11.2009, 19:47     Вывод содержимого вектора на экран #4
Андрейка, а для чего еще одна функция? std::copy() не достаточно?

Добавлено через 1 минуту
Цитата Сообщение от Даемоник Посмотреть сообщение
А что должно появиться на экране?
а как ты думаешь?
Цитата Сообщение от lelik759 Посмотреть сообщение
a_vec(4,8);
Добавлено через 33 секунды
Цитата Сообщение от lelik759 Посмотреть сообщение
Оформите полученную программу в виде самостоятельной функции show_vector()
бред сивой кобылы
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
01.11.2009, 20:07     Вывод содержимого вектора на экран #5
достаточно конечно ) но эт у неё ( думаю что лёлик - она))) по заданию функцию show_vector создать я вот так и подумал что с помощью итератора последовательно выводить а то смысл какой вобще делать функцию передавать объект туда и использовать функцию std::copy ) наверно в универе такие задания дают )
lelik759
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 29
01.11.2009, 22:17  [ТС]     Вывод содержимого вектора на экран #6
Если следовать условию моего задания ,листинг должен выглядеть вот так ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
using namespace std;
void show_vector( vector<int>&a_vec)
{
        for (vector<int>::iterator it = a_vec.begin() ; it!=a_vec.end() ; ++it)
                cout<<*it;
}
int main()
{
 
        vector<int>a_vec(3,777);       
        show_vector(a_vec);
        return 0;
}
Друзья,если не сложно поставьте комментарии возле каждой строки кода ,чтобы я мог разобраться что к чему.

И как получить исполняемый файл данной программы ?
Спасибо.
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
01.11.2009, 22:39     Вывод содержимого вектора на экран #7
lelik759, с объектно - ориентированным программированием знакомы?
lelik759
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 29
01.11.2009, 22:45  [ТС]     Вывод содержимого вектора на экран #8
Очень слабо,пытаюсь самостоятельно изучать С++
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
01.11.2009, 22:58     Вывод содержимого вектора на экран #9
ну так я бы предложил сначала чтобы основы stl изучить почитать про шаблоны функций и классов чтобы была понятна конструкция почему всё таки пишут vector<int> скорее всего ты понимаешь это как массив целых значений это конечно всё примерно так но почитай чтобы было не примерно а точно
скачай книгу Лена Аммераля stl для программистов там не предполагается углубленное знание ООП и вначале даются основные понятия про шаблоны чтобы вникнуть как оно всё это работает.
lelik759
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 29
02.11.2009, 01:21  [ТС]     Вывод содержимого вектора на экран #10
Мне хотелось бы увидеть комментарий по 6 строке ,с остальным вроде понятно.
Как раз читаю Лена Аммераля stl для программистов и Джесс_Либерти-Освой_Cpp_самостоятельно_за_21_день.
Просто конрольная на носу по шаблонам ,поэтому паралелльно пытаюсь разобраться с заданиями.К каждой сущуственной строке необходим комментарий ,поэтому и спросил.
niXman,

Добавлено через 1 час 27 минут
И все таки как должно выглядеть окончательное решение этого задания подскажите пожалуйста ?
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
02.11.2009, 13:07     Вывод содержимого вектора на экран #11
lelik759, итератор это объект служащий для перебора элементов контейнера работа похожа на работу указателя чтобы получить значение на которое указывает итератор его нужно разименовать чтобы перейти к следующему элементу контейнера его нужно инкрементировать.
lelik759
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 29
03.11.2009, 00:38  [ТС]     Вывод содержимого вектора на экран #12
Андрейка,У меня в задании указано,что вектор необходимо заполнить произвольными значениями и вывести их на экран с помощью разыменовывания итератора ,подскажите как это сделать?

Есть вопрос насчет программы - с циклом FOR мне понятно , с помощью его идет переборка контейнера от начала до конца и выводятся его значения .

А что делает цикл WHILE (условие выполнения цикла CIN>>)Как я понял с помощью этого цикла ,введенное значение х должно добавлятся в конец контейнера ? но при компиляции данной программы пишется "No errors or program output. " То есть ошибок в программе нет ,но она и ничего не делает .
Еще раз напомню основной вопрос : заполнить произвольными значениями и вывести их на экран с помощью разыменовывания итератора ,подскажите как это сделать? Спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
using namespace std;
void show_vector( vector<int>&a)
{
        for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
                cout<<*it;
}
int main()
{
        int x;
    
        vector<int>a;
        while (cin>>x)
                a.push_back(x);
        show_vector(a);
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2016, 17:14     Вывод содержимого вектора на экран
Еще ссылки по теме:

Отображение содержимого вектора в VS C++
C++ Вывод содержимого вектора с наибольшим количеством строк
C++ Изменение содержимого вектора из лямбда функции

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

Или воспользуйтесь поиском по форуму:
vvm28
9 / 9 / 1
Регистрация: 22.12.2013
Сообщений: 49
Записей в блоге: 3
15.02.2016, 17:14     Вывод содержимого вектора на экран #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <vector>
#include <cstdlib> // содержит srand() и rand() для GNU компилятора поставить опцию -std=gnu++11
/*
vvm28
*/
 
using namespace std;
void show_vector( vector<int>&a)
{
        for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
                cout<<*it<<" ";
}
 
// заполнить n ячеек вектора псевдиками
void random_push_back_vector( vector<int>&a, int n)
    {
      for (int i=0; i<n; ++i)
          {
              a.push_back(rand()); // здесь можете заполнять не псевдослучайными а случайными например в некотором диапазоне
          }
 
    }
 
int main()
{
       // int x;
 
        vector<int> a;
        /*
        while (cin>>x)
                a.push_back(x);
                */
 
 
         random_push_back_vector(a,12); // заполним 12 элементов вектора псевдослучайными, произвольными
 
        show_vector(a);
        return 0;
}
Yandex
Объявления
15.02.2016, 17:14     Вывод содержимого вектора на экран
Ответ Создать тему
Опции темы

Текущее время: 01:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru