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

использование vector и struct - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.97
Cans
Сообщений: n/a
19.03.2011, 14:07     использование vector и struct #1
недавно пересел на С++, пытаюсь сделать программу, которую я делал на паскале
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
struct elem
{
    long Li;
    long Ri;
};
 
int main(int argc, char *argv[])
{
    if (argc <= 1)
    {
        cout << "This is a 1st program" << endl;
        return 0;
    }
    
    ifstream inFile(argv[1], ifstream::in);
    ofstream outFile("output.txt");
    if (!inFile.is_open())
    {
        cout << "File not found" << endl;
        return 1;
    }
    else
    {
        long i;
        long Len;
        long Li;
        long Ri;
        vector<elem> arr;
        inFile >> Len;
        cout << Len << endl;
        for (i = 0; i != Len; ++i)
        {
            inFile >> Li >> Ri;
            arr[i].Li = Li; 
            arr[i].Ri = Ri;
            cout << arr[i].Li << " " << arr[i].Ri << endl;
        }
    }
}
ошибка появляется, когда я пытаюсь занести первое число Li в вектор.
<expression vector subscript out of range>
подскажете в чём дело?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.03.2011, 14:10     использование vector и struct #2
Cans, Вы не задали размер вектора, а используете [], чего делать нельзя.
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
19.03.2011, 14:13     использование vector и struct #3
Сделайте так
C++
1
2
inFile >> Len;
vector<elem> arr(Len);
Cans
Сообщений: n/a
19.03.2011, 14:13     использование vector и struct #4
Цитата Сообщение от asics Посмотреть сообщение
Cans, Вы не задали размер вектора, а используете [], чего делать нельзя.
О, спасибо, действительно заработало. Раньше никогда не задавал размер, всё ок было.


Цитата Сообщение от Ma3a Посмотреть сообщение
Сделайте так
C++
1
2
inFile >> Len;
vector<elem> arr(Len);
Да, да, спасибо, так и сделаю.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.03.2011, 14:16     использование vector и struct #5
Cans, Если Вы не задаете размер вектора, то для добавления елементов в вектор надо использовать метод push_back().То есть делать допольнительный обект структуры, запольнать его и класть в вектор
C++
1
2
3
elem temp;
inFile >> temp.Li >> temp.Ri;
arr.push_back(elem);
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.03.2011, 14:20     использование vector и struct #6
Нужно использовать функцию push_back.

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

Не по теме:

Мдя... F5, F5...

Yandex
Объявления
19.03.2011, 14:20     использование vector и struct
Ответ Создать тему
Опции темы

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