Есть класс, есть вектор векторов этого класса. Как обратиться к элементу класса через вектор векторов?
class primer{
public:
string date;
string hello;
};
int main();
primer p[2];
vector<vector<primer>> p1;
vector<primer> p2;
string q = "qwerty";
p[0].date = "22.01";
p[0].hello = "asd";
p2.push_back(p);
p1.push_back(p2);
p[1].date = "22.19";
p[1].hello = "qwerty";
p2.push_back(p);
p1.push_back(p2);
И после обращения необходимо найти в векторе p1 строку которая равна q и вывести все элементы этого класса, которому принадлежит найденная строка
Чтоб компилировалось, нужно так:
int main()
{
primer p[2];
vector<vector<primer>> p1;
vector<primer> p2;
string q = "qwerty";
p[0].date = "22.01";
p[0].hello = "asd";
p2.push_back(p[0]);
p1.push_back(p2);
p[1].date = "22.19";
p[1].hello = "qwerty";
p2.push_back(p[1]);
p1.push_back(p2);
}
Но вот то ли это, что вы хотите - разбирайтесь сами :) Здесь у вас первый вектор в векторе - из одного элемента, второй - из двух...
Дальше просто используйте цикл типа
for(const auto& p2: p1)
{
// Ищем в p2 строку, если есть - выводим p2
// Типа перебираем все строки в p2
// for(auto x: p2)
// if (x.date == q) // если строка есть
// for(auto y: p2) cout << y.date; // выводим весь p2
// (Набросок на коленке, не для компиляции :))
}
Или вот, даже компилируемый :) -
int main()
{
primer p[2];
vector<vector<primer>> p1;
vector<primer> p2;
string q = "qwerty";
p[0].date = "22.01";
p[0].hello = "asd";
p2.push_back(p[0]);
p1.push_back(p2);
p[1].date = "22.19";
p[1].hello = "qwerty";
p2.push_back(p[1]);
p1.push_back(p2);
for(const auto& p: p1)
{
for(const auto& r: p)
if (r.hello == q)
for(const auto& v: p)
cout << v.date << " " << v.hello << "\n";
}
}
Правда, красивее все же через алгоритмы стандартной библиотеки...
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости