Есть класс Флешка с полями фирма, тип, память, количество и дата производства
//...
private:
string _firm;
string _type;
int _memoryGB;
int _quantity;
string _date;
};
Есть класс Список флешек
class FlashList
{
public:
FlashList(vector<Flashka> list);
//...
private:
vector<Flashka> _list;
};
Нужна функция для сортировки флешек по названию фирмы
//...
vector<Flashka> FirmSort(string firm)
{
vector<Flashka> result;
for (auto i = 0; i < _list.size(); ++i)
if (firm == _list[i].getFirm())
result.push_back(_list[i]);
return result;
}
Использую гугл-тесты
TEST(FlashList, Sort)
{
Flashka a("HP", "NOR", 32, 56, "21.11.2017");
Flashka b("HP", "NAND", 64, 48, "01.11.2017");
Flashka c("Kingston", "NOR", 16, 24, "02.11.2017");
Flashka d("Transcend", "NAND", 16, 48, "21.11.2017");
vector<Flashka> v;
v.push_back(a);
v.push_back(b);
v.push_back(c);
v.push_back(d);
FlashList List(v);
vector<Flashka> trew;
trew.push_back(a);
trew.push_back(b);
EXPECT_TRUE(trew == List.FirmSort("HP"));
}
выдаёт следующее
как побороть?
Ваша функция реализует стандартный (правда, только начиная с C++11) алгоритм copy_if. Там же и пример. В котором, правда, преждевременная оптимизация - вектор-приемник создатся со стартовым размером, потом обрезается, вместо использовагия std::back_inserter() в пустой вектор.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники