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

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

Войти
Регистрация
Восстановить пароль
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
#1

Использовать Vector вместо array - C++

11.11.2012, 01:37. Просмотров 408. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста, переписать программу чтобы заменить array на Vector :

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Sorting an Array 
 
#include <iostream>
 
void fill_array(int a[], int size, int& number_used);
 
void sort(int a[], int number_used);
 
void swap_values(int& v1, int& v2);
 
 
int index_of_smallest(const int a[], int start_index, int number_used);
 
int main( )
{
    using namespace std;
    cout << "This program sorts numbers from lowest to highest.\n";
 
    int sample_array[10], number_used;
    fill_array(sample_array, 10, number_used);
    sort(sample_array, number_used);
 
    cout << "In sorted order the numbers are:\n";
    for (int index = 0; index < number_used; index++)
        cout << sample_array[index] << " ";
    cout << endl;
 
 
    system("PAUSE");
    return 0;
}
 
//Uses iostream:
void fill_array(int a[], int size, int& number_used)
{
    using namespace std;
    cout << "Enter up to " << size << " nonnegative whole numbers.\n"
         << "Mark the end of the list with a negative number.\n";
    int next, index = 0;
    cin >> next;
    while ((next >= 0) && (index < size))
    {
        a[index] = next;
        index++;
        cin >> next;
    }
 
    number_used = index;
}
 
 
    void sort(int a[], int number_used)
    {
    int index_of_next_smallest;
 
 
    for (int index = 0; index < number_used - 1; index++)
    {//Place the correct value in a[index]:
        index_of_next_smallest =
                     index_of_smallest(a, index, number_used);
        swap_values(a[index], a[index_of_next_smallest]);
        //a[0] <= a[1] <=...<= a[index] are the smallest of the original array 
        //elements. The rest of the elements are in the remaining positions.
    }
}
 
 
        void swap_values(int& v1, int& v2)
        {
         int temp;
         temp = v1;
         v1 = v2;
         v2 = temp;
        }
 
 
        int index_of_smallest(const int a[], int start_index, int number_used)
        {
            int min = a[start_index],
            index_of_min = start_index;
        for (int index = start_index + 1; index < number_used; index++)
             if (a[index] < min)
             {
               min = a[index];
               index_of_min = index;
                //min is the smallest of a[start_index] through a[index]
             }
 
    return index_of_min;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 01:37     Использовать Vector вместо array
Посмотрите здесь:

Как вместо char* использовать vector<string>? - C++
Здравствуйте, можете объяснить, как это сделать или проще привести какой-нибудь пример, чтобы стало понятно, как это применить к своей...

Std::vector для Array of String - C++
Нужно поместить append первым элементом пустую Array of String. Как-нибудь по-умному это делается? :)

Динамические массивы типа vector и array - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;array&gt; #include &lt;string&gt; using namespace std; int main() { const int...

В чем существенные отличия Array и Vector - C++
В чем существенные отличия, что и когда предпочтительно использовать?

Возможно ли вложение контейнера array в контейнер vector? - C++
мне надо в динамическом массиве хранить 3-х мерные координаты треугольников. пытаюсь сделать вот так: vector&lt;array&lt;float,9&gt; &gt;...

Не использовать <vector> - C++
Изменить участок for(auto it = v.crbegin(); it!=v.crend() - p; it++) std::cout « *it « &quot; &quot;; for(auto it = v.cbegin();...

статическая и динамическая матрица на std::array and std::vector - C++
Всем привет. Решил немного поиграться с шаблонами. Скилл чуть больше 0. Можно ли с помощью шаблонной магии подставить вместо...

Что лучше использовать vector или массив - C++
Что лучше использовать и когда vector или массив ?

Реализовать поиск в массиве пользовательских объектов по заданному полю (использовать std::vector) - C++
помогите,пожалуйста,очень нужно!!!!!! Имеются сведения(модель-цена). Выделить заданное число самых дешевых моделей.(ЧЕРЕЗ ВЕКТОР)

В одномерном массиве (использовать vector) подсчитать сумму элементов после последнего положительного элемента - C++
Здравствуйте. Очень нужна помощь в решении одной задачи. Вот сама постановка задачи: В одномерном массиве подсчитать сумму элементов...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1428 / 765 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
11.11.2012, 03:05     Использовать Vector вместо array #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
    std::vector<int> v;
    cout<<"Fiil the vector (enter char to stop):\n";
    std::copy(std::istream_iterator<int>(cin), std::istream_iterator<int>(), back_inserter(v));
    cout << "You entered:\n";
    for (int & x : v) cout<<x<<" ";
    std::sort(v.begin(), v.end());
    cout << "\nIn sorted order the numbers are:\n";
    for (int & x : v) cout<<x<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
11.11.2012, 07:39  [ТС]     Использовать Vector вместо array #3
Подскажите пожалуйста:
for (int & x : v) - выдаёт сообщение, что expected primary-expression before "int", expected ';' before 'int' could not convert 'str::sotf'

Я новичок - ни чего в vector не понимаю .
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
11.11.2012, 11:19     Использовать Vector вместо array #4
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Подскажите пожалуйста:
for (int & x : v) - выдаёт сообщение, что expected primary-expression before "int", expected ';' before 'int' could not convert 'str::sotf'
эта фишка из нового стандарта, наверное твой компилятор не поддерживает новый стандарт, исправить легко, сделать как обычный цикл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
    std::vector<int> v;
    cout<<"Fiil the vector (enter char to stop):\n";
    std::copy(std::istream_iterator<int>(cin), std::istream_iterator<int>(), back_inserter(v));
    cout << "You entered:\n";
    for (unsigned x = 0; x < v.size(); x++) cout<<x<<" ";
    std::sort(v.begin(), v.end());
    cout << "\nIn sorted order the numbers are:\n";
    for ( unsigned x = 0; x < v.size(); x++) cout<<x<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
Yandex
Объявления
11.11.2012, 11:19     Использовать Vector вместо array
Ответ Создать тему
Опции темы

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