Я новичок в C++, и я пытаюсь преобразовать unordered_set<string>
в vector<vector<int>>
Преобразование набора в вектор вектора
Набор содержит ("1,2,2","1","1,2","2","2,2")
, и каждый элемент является строкой. Я хотел бы вывести vector<vector<int>>
содержащий
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]
Так как я бы разобрать каждый элемент (строка) и сделать это выглядит как на приведенной выше схеме?
#define SSTR(x) dynamic_cast< std::ostringstream & >(\
(std::ostringstream() << std::dec << x)).str()
vector<vector<int> > subsetsWithDup(const vector<int> &num) {
unordered_set<string> result;
for (int i = 0; i < num.size(); i++)
{
result.insert(SSTR(num[i]));
for (int j = i+1; j < num.size(); j++)
{
string d = SSTR(num[i]) + "," +SSTR(num[j]);
result.insert(d);
}
}
string lastString= "";
for (int i = 0; i < num.size(); i++)
{
if (i == num.size() -1)
{
lastString+= SSTR(num[i]);
}
else
{
lastString+= SSTR(num[i])+",";
}
}
result.insert(lastString);
// convert result back to vector<vector<int>>
return result;
}
Я не могу сказать, в каком порядке вы хотите, чтобы они в - это, кажется, совершенно случайно! –
заказ не важен – andre
Итак, вы предоставили алгоритм: я не понимаю, что вы хотите от нас делать. Докажите, что это правильно? Возьмите его через отладчик и посмотрите, что это такое. – noobProgrammer