Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамический связный список / 7 сообщений из 7, страница 1 из 1
24.04.2014, 15:00
    #38624738
Anoonim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
Я хочу разобраться и сделать это задание, и мне нужна помощь!
Задача заключается в следующем:

ЗАДАНИЕДан файл с числами вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
0
1 2
3 4 5 6
7 8 9 10 11
15 16 17 18 1
31 32 33 34 35 36 37 45 
57 58 59 60 62 63 64 65 66 

Создать вектор из одного объекта (соответствующий связный список формируется динамически), данные для которого берутся из этого файла.

Вот, что у меня получилось:
Код: plaintext
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.
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
using namespace std;
const int len = 100;
struct Values
{
	int nums[len];
};

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL, "");

	char arr[len];			//промежуточный массив чаров
	Values val;				//объект типа структуры
	const char *data = "C:\\Users\\User\\Desktop\\datafile1.txt";

	fstream file(data);

	vector <Values> vect;
	vect.clear();

	while (file.getline(arr, len, '\n'))
	{
		for (int i = 0; i < len; i++)
		    val.nums[i] = arr[i] - '0';
		vect.push_back(val);      //добавляем объект в вектор
	}
	file.close();
	for (int i = 0; i < vect.size(); i++)
		cout << vect.at(i).nums << '\n';
	system("pause");
	return 0;
}


Программа компилируется. Но на экран выводятся адреса и то не всех чисел.

P.S. Замучился уже
...
Рейтинг: 0 / 0
24.04.2014, 16:37
    #38624914
smald
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
int main()
{
 
vector<int> vec;

 int res;

 fstream fs("text");

 if(!fs.good()){ exit(-1); };
  
  while(!fs.eof()){

 fs>>res;

 if( fs.fail() ) break;

 vec.push_back(res);

 };

 fs.close();
...
Рейтинг: 0 / 0
24.04.2014, 16:50
    #38624945
Anoonim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
Как записать эти числа в наш вектор. Как понять - "соответствующий связный список формируется динамически"??
...
Рейтинг: 0 / 0
24.04.2014, 16:54
    #38624952
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
Anoonim,

Код: plaintext
Создать вектор из одного объекта (соответствующий связный список формируется динамически), данные для которого берутся из этого файла.


Я так понимаю (возможно, неверно), что надо сформировать вектор списков чисел,
в векторе столько списков, сколько строк в исходном файле, а в каждом списке столько чисел, сколько в каждой строке исходного файла.

Т.е. каждая строка файла должна быть элементом вектора -- списком чисел.
А числа из каждой строки идут в один список.
...
Рейтинг: 0 / 0
24.04.2014, 17:19
    #38624975
smald
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
AnoonimКак записать эти числа в наш вектор. Как понять - "соответствующий связный список формируется динамически"??


авторСоздать вектор из одного объекта


std::vector
автор (соответствующий связный список формируется динамически), данные для которого берутся из этого файла.


Последовательно читаем файл и в процессе этого формируем вектор.

И вообще, задачку не иначе как транслайтом перевели с енглиша.
И за что им в ВУЗе за обучение платить?

Но для чистоты совести можно и такой вариант отдать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
using namespace std;
typedef list<int> lst;
int main(){
 
 int res;

 vector<lst> vec(1, lst());
 
 fstream fs("text");

 if(!fs.good()){ exit(-1); };
 
while(!fs.eof()){

 fs>>res;

if(fs.fail()) break;

vec[0].push_back(res);

 };

fs.close();
 
...
Рейтинг: 0 / 0
24.04.2014, 21:29
    #38625153
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
smald
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 
while(!fs.eof()){

 fs>>res;

if(fs.fail()) break;

vec[0].push_back(res);

 };

 


Ох, любите же вы одни и те же циклы по сто раз писать:
Код: plaintext
1.
copy(istream_iterator<int>(fs), istream_iterator<int>(), back_inserter(vec[0]));
...
Рейтинг: 0 / 0
24.04.2014, 22:48
    #38625200
smald
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический связный список
MozokОх, любите же вы одни и те же циклы по сто раз писать:


Вот попадёте в ядро, посмотрим как там без автоматического
инструмента выживать будете.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамический связный список / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]