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

Вектор структур, в которых также векторы. Ошибка переполнения вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Напечатать все слова строки, которые начинаются цифрой http://www.cyberforum.ru/cpp-beginners/thread1155167.html
Привет. Нужна помощь: Задана строка. Необходимо напечатать все слова строки, которые начинаются цифрой и подсчитать их количество.
C++ Программой для вычисления математических выражений Задача 1. Написать программу, которая вычисляет значение выражения, и определить ее значение для введенного пользователем значений фактических параметров. Создать функции пользователей-для... http://www.cyberforum.ru/cpp-beginners/thread1155166.html
Блок-схема к программе C++
нужна блок схема к программе: #include <iostream> #include <conio.h> #include <string> using namespace std; struct toy { string name;//імя float cost;//вартість
Функция анализа фойлов C++
Есть такая таблица номеров автономных систем, нужна функция которая будет проводить анализ этих номеров и показывать как они связаны друг с другом.
C++ Разработать программу «Численное интегрирование» различными методами в С++ http://www.cyberforum.ru/cpp-beginners/thread1155148.html
Помогите Разработать программу «Численное интегрирование» различными методами: 1) по формуле Ньютона-Котеса; 2) по формуле Симпсона; 3) по формуле Чебышева. Добавлено через 5 часов 23 минуты...
C++ Дано файл вещественных чисел. Упорядочить его содержание в следующем порядке: первое, последнее, второе, предпоследнее Условие: Дан файл вещественных чисел. Упорядочить его содержание в следующем порядке: первое, последнее, второе, предпоследнее и т.д. Решение: Как я понимаю, нужно прочесть бинарный файл с начало и... подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,532
Завершенные тесты: 1
23.04.2014, 15:23
HORHY_SUPER, когда вы создаете вектор, то выделяется память под структуру только верхнего уровня.
Надо в конструктор передавать параметры, чтобы он понимал под что именно и сколько ему надо выделять.

Это конечно плохо, но типа того:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct MyStruct2
  {
  int i;
  };
 
struct MyStruct1
  {
  std::vector<MyStruct2> myStruct2;
  int mmm;
  } ms1;
 
/* Конструкторы вектора:
explicit vector (const Allocator& = Allocator());
explicit vector (size_type, const Allocator& = Allocator ());
vector (size_type, const T&, const Allocator& = Allocator());
vector (const vector<T, Allocator>&);*/
 
std::vector<MyStruct1> vMyStruct1( 1, ms1 ); // Типа того
 
vMyStruct1[0].mmm = 99; // Вот здесь в вашем примере уже крашнется
vMyStruct1[0].myStruct2.resize(vMyStruct1[0].myStruct2.size() + 1);
Добавлено через 7 минут
Хотя что-то я сильно загнался. Достаточно просто указать размер вектора:
C++
18
std::vector<MyStruct1> vMyStruct1( 666 );
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru