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

Связь списков - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Простой ввод строки с пробелами через string http://www.cyberforum.ru/cpp-beginners/thread820321.html
Visual studio 2012, никак не могу ввести строку через string. У меня не работает вот этот фрагмент кода: #include "stdafx.h" #include "iostream" #include <string.h> #include "stdio.h" using...
C++ Определить число вхождений символа в предложение Суть задачи: Дано предложение. Определить число вхождений в него некоторого символа. Вот мой код: #include "stdafx.h" #include <iostream> using namespace std; int _tmain() http://www.cyberforum.ru/cpp-beginners/thread820318.html
C++ Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки
пусть дано натуральное число n и целочисленная квадратная матрица порядка n. Получите b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки (если все...
Множества. Вычислить количество элементов множества Q, связанного c исходными множествами C++
В общем задание звучит так : Заданы 3 упорядоченных множества F, G и H, представленные файлами f, g и h соответственно. Вычислить количество элементов множества Q, связанного c исходными множествами...
C++ Перевести на C++ Basic http://www.cyberforum.ru/cpp-beginners/thread820241.html
Условие задачи такое: В одномерном массиве найти сумму чисел,расположенных между первым минимальным и последним максимальным элементами массива. uses crt; const n=20; var a:array of integer; ...
C++ Тип unsigned long long Добрый день. У меня возник вопрос: Почему в результате выполнения программы выводится число: -1? А должно: 18446744073709551615 #include <stdio.h> #include <conio.h> #include <stdlib.h> int... подробнее

Показать сообщение отдельно
awpe
2 / 2 / 0
Регистрация: 23.11.2011
Сообщений: 87
29.03.2013, 19:36  [ТС]
Вдохновившись вашей реализации придумал такую:

есть структура StringStruct которая содержит указатель на тип std::string, массив указателей на структуры владельцев и структуры компаний (к каждому массиву еще int количество элементов), т.е. у одной строки есть указатели на места где она используется.

Есть структура владельцев содержит два указателя типа предыдущей структуры а также один указатель на компанию(по условию задачи один владелец - одна компания)

Есть структура компаний содержит массив указателей на структуры владельцев, а также два указателя типа StringStruc на название и адрес. Для массива есть переменная с его размером

В базовом классе создается два массива структур владелецев, физически в памяти структура владельца в единственном экземпляре, но в каждом массиве указатели отсортированы в соответствии с расположением имени или адреса, т.е. первый массив - сортировка по имени, второй по адресу.

Также в базовом классе есть массив структур компаний.


Таким образом имеем два массива строк - все имена/названия и все адреса, множество структур владельцев с доступом черех два массива, и массив компаний.

Все элементы связаны указателями, при записи нового владельца два массива владельцев позволяют провести бинарные поиски по имени и по адресу владельца

При удалении владельца можно сразу посмотреть надо ли удалять ту или иную строку или ту или иную компанию (можно проверить размер соответствеющих массивов в этих структурах и сказать используются они где либо или нет)

При добавлении записи также память выделяется не на один элемент а на текущее (количество элементов)*1.5

Конечно много указателей каждый по 4байта, но если строки длинные то наверное этот факт окупится скоростью?

Добавлено через 2 минуты
Цитата Сообщение от lemegeton Посмотреть сообщение
Вы ожидание ввода приняли за зацикливани
Я в нетбинсах не видел конца программы, а при заупске dbg количество шагов мне показалось бесконечным

Цитата Сообщение от lemegeton Посмотреть сообщение
total heap usage: 76 allocs, 73 frees, 12,613 bytes allocated.
в том что 3 блока не были освобождены это не допустимо по условиям
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru