急急急!求解一道C++测试题

 

输入字符串如“#,#;#,#,#;”。例如:3;7,8;10,11; 这样按“;”分隔,分隔出的字符串再按“,”分隔。装入vector<vector<int>>中,并在List控件中显示所有排列组合,如下图所示!

函数的形参列表只有(const CString& str,vector〈vector〈int〉〉& vec)

你可以试试这样:

1、用strtok分离“;”,得到一个字符串容器vector<cstring>;

2、遍历字符串容器,用strtok分离“,”,得到vector<int>;

3、得到上面的容器时,再存放在vector<vector<int>>;

4、组合方式通过遍历vector<vector<int>>就可以得到。

🔝

void Function(const QString& str,QVector<QVector<int>>& vec)
{
    QStringList strList = str.split(";");
    for(int i = 0;i < strList.size();i++)
    {
        QVector<int> var;
        QStringList strVar = strList.at(i).split(",");
        for(int k = 0;k < strVar.size();k++)
        {
            var.append(strVar[k].toInt());
        }
        vec.append(var);
    }
}