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

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

Войти
Регистрация
Восстановить пароль
 
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
#1

vector объектов структуры - C++

29.01.2013, 06:38. Просмотров 686. Ответов 10
Метки нет (Все метки)

Здравствуйте господа програмисты,возникла у меня трудность,в програмке будет присутствовать неизвестное заранее количество координат максимум где-то под 2000-2500(8 integer на объект).Но в большинстве случаев будут использоваться всего 30-100 и было у меня в мыслях уже писать массив объектов структуры на 2500 персон да вот попалась на глаза книга по STL а там пречудесный вещ vector.
Тока обрадовался я раньше времени в vector оказывается вхожи лишь объекты с пустым конструктором.
А в чём всё-таки смысл если нельзя передать свойства объекту структуры в векторе?
У меня пока остаётся 2 варианта:либо лепить 8 векторов(на каждую координату)либо стандартный массив на максимум объектов.
Может подскажете вариант повеселее?

Добавлено через 2 минуты
видел на форуме пример такого рода
C++
1
2
3
4
vector <tovar*> tovar_list; //лучше-таки  указатели
tovar tr;
tovar_list.push_back(&tr);
tovar_list[0]->name = "orange";
но лезть в динамическое распределение памяти очень не хочется
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2013, 06:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос vector объектов структуры (C++):

Создать vector из объектов класса - C++
Добрый вечер! У меня есть некий класс SuperClass, в котором есть динамическое поле: class SuperClass { public: int *v; ...

Массив объектов пользовательского типа в vector - C++
Доброго времени суток. Кто может подсказать что храниться в vector&lt; Employer* &gt; employerArray ( 4 ); при его инициализации?

Заполнение структуры из vector - C++
Доброго времени суток. Имеется такого вида структура: struct Point { Point (void); double x,y; int number;

Редактирование и сохранение структуры <vector> - C++
Доброго времени суток, не могу ума приложить, как реализовать функцию для редактирования данных в &lt;vector&gt; с последующим занесением в нее. ...

Vector, хранящий разные структуры - C++
Решил на C++ написать программу, которая может в 1 массиве (векторе) хранить разные структуры. Допусти есть несколько структур: Men ...

Sort vector, сортировка по двум полям структуры - C++
Поскажите как отсортировать если: struct DATA{ string fir; string sec; double sm; }; vector &lt;DATA&gt; vec; vector...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
29.01.2013, 11:37 #2
Структура для координат:
C++
1
2
3
4
struct coordinate
{
    int X1,X2,X3,X4,X5,X6,X7,X8;
};
Чудо код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    
vector <coordinate> H;
coordinate ST1;
 
ST1.X1 = 1;
H.push_back(ST1);
 
ST1.X1 = 8;
H.push_back(ST1);
 
ShowMessage(IntToStr(H[0].X1));//Выдаст 1
ShowMessage(IntToStr(H[1].X1));//выдаст 8
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.01.2013, 12:02 #3
Цитата Сообщение от ijonhson Посмотреть сообщение
Тока обрадовался я раньше времени в vector оказывается вхожи лишь объекты с пустым конструктором.
Почему же?
C++
1
vector_name.push_back(class_name(param1, param2));
1
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
29.01.2013, 23:18  [ТС] #4
спасибо вроде разобрался единственный вопрос:
заполняю элемент массива, но вместо введённых значений там какой-то мусор может глянете?
в classesij.cpp создан vector объектов далее заполнено 0-вой объект и выведено значение 0-го шовмессаджем ерись одним вловом
0
Вложения
Тип файла: rar IJокна.rar (455.7 Кб, 9 просмотров)
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.01.2013, 23:57 #5
C++
1
2
3
4
5
6
7
8
massive::massive(int xl,int yl,int x1l,int y1l,int lrtbl)//конструктор класса массива объектов
{
xl=x; // тут и далее надо присваивать наоборот
yl=y;
x1l=x1;
y1l=y1;
lrtbl=lrtb;
}
1
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
30.01.2013, 00:57  [ТС] #6
Спасибо я догадывался что где-то детская ошибка но глаз ещё не намётан.
0
migtymasha
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 11
19.05.2013, 20:07 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct coord
    {
        double x,y;
    };
    vector<coord> v1(4);
    for (int i=0; i<4; i++)
    {
        double x,y;
        cout<<"Введите координаты "<<i<<"ой точки первого множества: ";
        cin>>x>>y;
        cout<<endl;
        coord tochka;
        tochka.x=x;
        tochka.y=y;
        v1.push_back(tochka);
    };
у меня похожая проблема( можете подсказать, где ошибка? в процессе компиляции никаких ошибок не выскакивает, но в tochka не запоминаются данные, а в вектор и тем более..
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.05.2013, 20:11 #8
как проверяли?
0
migtymasha
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 11
19.05.2013, 20:16 #9
точку остановы ставила около цикла
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
19.05.2013, 20:42 #10
Цитата Сообщение от migtymasha Посмотреть сообщение
vector<coord> v1(4);
заменить на
vector<coord> v1;
1
migtymasha
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 11
19.05.2013, 21:47 #11
I.M., спасибо) стало лучше, правда теперь неправильно считает расстояние между точками, но хоть как-то считает)

Добавлено через 6 минут
I.M., можете сказать, правильно ли написано?

C++
1
2
3
4
5
6
7
for(int i=0; i<4; i++)
    {
        for (int j=i+1; j<4; j++)
        {
            m[i][j]=sqrt(pow(v1[i].x-v1[j].x,2)+pow(v1[i].y-v1[j].y,2));
        };
    };
Добавлено через 43 минуты
все норм, это я дебил)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 21:47
Привет! Вот еще темы с ответами:

Как добавить элемент структуры с использованием #include <vector> ? - C++
#include &lt;vector&gt; #include &lt;iostream&gt; using namespace std; struct Item { int n; };

Доступ к элементу структуры, массив которых хранится в vector - C++
Как получить доступ к элементу структуры, если несколько структур хранится в vector? Я прохожу по вектору через итератор. ...

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

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main - C++
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.05.2013, 21:47
Ответ Создать тему
Опции темы

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