Есть такой код, описывающий вложенные списки:
class Item
{
public:
Item();
private:
int m_data1;
int m_data2;
};
class SubGroup
{
public:
SubGroup();
private:
std::vector<Item> m_cont;
};
class Group
{
public:
Group();
private:
std::vector<SubGroup> m_cont;
};
Вопрос: как лучше получить доступ элементам Item
(перебрать все) из управляющего класса Manager
?
class Manager
{
public:
Manager(Group &group);
};
Может быть есть какой то паттерн? Модификация классов списка допустима.
Как лучше?.. Решать вам, исходя из вашей задачи и намерений, но в любом случаи нужно обеспечить доступ к элементам закрытых членов. Простой пример:
class Item
{
int m_data1;
int m_data2;
public:
int& first = m_data1,
second = m_data2;
};
class SubGroup
{
private:
std::vector<Item> m_cont;
public:
using Iter = std::vector<Item>::iterator;
std::pair<Iter, Iter> range()
{ return { m_cont.begin(), m_cont.end() }; }
};
class Group
{
std::vector<SubGroup> m_cont;
public:
using Iter = std::vector<SubGroup>::iterator;
std::pair<Iter, Iter> range()
{ return { m_cont.begin(), m_cont.end() }; }
};
class Manager
{
public:
Manager(Group&);
};
Manager::Manager(Group& g)
{
auto pG = g.range();
auto pS = pG.first;
while (pS != pG.second) {
auto p = pS->range();
auto p1 = p.first;
while (p1 != p.second) {
p1->first = rand() % 100;
p1->second = rand() % 50;
++p1;
}
++pS;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не могу разобраться почему не считает, вроде отладчиком прошелся посмотреть чему равен lidataset
Всем добрый день! При разработке проекта на Django не удается подключить стили CSSСоздана директория static, где лежат как стили, так и картинки
Как сделать чтобы функция выполнялась только тогда, когда выполнились оба условия? Необходимо, чтобы блок становился серым только при условии,...
Есть 3 класса и под каждый из классов сделана привязка через DataBinding для передачи данных на форму, и 4й главный обобщающий куда занесены данные...