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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.97
Cans
#1

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

19.03.2011, 14:07. Просмотров 4517. Ответов 5
Метки нет (Все метки)

недавно пересел на С++, пытаюсь сделать программу, которую я делал на паскале
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>
подскажете в чём дело?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2011, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос использование vector и struct (C++):

Struct / Vector / Expression: vector subscript out of range - C++
Добрый вечер. Имеется структура: struct Contact { public: string name; vector&lt;string&gt; phoneNumber; };

Компаратор для сортировки vector<list<struct>> - C++
Помогите, как реализовать компаратор для сортировки vector&lt;list&lt;struct&gt;&gt; ? struct Edge { int i,j,len; }; Массив заполняется...

Как вывести значения vector<list<struct>> ? - C++
У меня есть структура: struct graph { int i, j, len }; и массив списков: vector&lt;list&lt;graph&gt;&gt; g; Как мне вывести в цикле...

Передачи функции имени вектора со структурой (vector+struct >> some function) - C++
Доброе время суток!! Помогите разобраться с передачей функции в качестве аргумента весь вектор со структурой Собственно пишу из...

Использование Struct - C++
Условие: Создать массив структур, используя данные из задания. Создать программное приложение, которое включает его обработку с...

Использование структур struct - C++
Писал код по методичке, потом уже вконец запутался и не могу понять как сделать правильно. Подскажите хорошо растолкованную тему по...

5
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
19.03.2011, 14:10 #2
Cans, Вы не задали размер вектора, а используете [], чего делать нельзя.
1
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
19.03.2011, 14:13 #3
Сделайте так
C++
1
2
inFile >> Len;
vector<elem> arr(Len);
1
Cans
19.03.2011, 14:13 #4
Цитата Сообщение от asics Посмотреть сообщение
Cans, Вы не задали размер вектора, а используете [], чего делать нельзя.
О, спасибо, действительно заработало. Раньше никогда не задавал размер, всё ок было.


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

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

Не по теме:

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

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

Использование <vector> - C++
Возник еще один вопрос по векторам: если описываешь класс для работы с вектором, надо ли в деструкторе удалять созданный вектор, и если да,...

Использование vector - C++
Здравствуйте. У меня есть два класса,в каждом находится по вектору vector&lt;AbstractObject*&gt;m_BulletVector; ...

Использование vector<string> - C++
Задание: Задана строка S, содержащая не менее двух слов, и символ с. Составит новую строку S1 из слов строки S, в которых есть символ с,...

Использование vector в dll - C++
У меня есть такой вопрос. Допустим у нас в dll есть структура, vector состоит из набора этих структур. Есть функция которая возвращает...


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

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

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