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

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

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

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

19.03.2011, 14:07. Просмотров 4410. Ответов 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
Посмотрите здесь:

Компаратор для сортировки 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++
Писал код по методичке, потом уже вконец запутался и не могу понять как сделать правильно. Подскажите хорошо растолкованную тему по...

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

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

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

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

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

Использование vector insert и своего типа данных - C++
Не понимаю почему вот здесь выскакивает странная ошибка: arr.insert(arr.begin(),(*max)); #include &lt;iostream&gt; #include &lt;iterator&gt; ...

Vector ругается на использование классов E2397 и Invalid pointer operation - C++
Не получается использовать vector с собственными классами выдает либо Unit1.cpp(62): E2397 Template argument cannot have static or local...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.03.2011, 14:10     использование vector и struct #2
Cans, Вы не задали размер вектора, а используете [], чего делать нельзя.
Ma3a
Эксперт C++
616 / 460 / 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++
2846 / 1783 / 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
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
19.03.2011, 14:20     использование vector и struct #6
Нужно использовать функцию push_back.

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

Не по теме:

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

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

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