将整数数组转换为字符串向量的更快方法

时间:2016-02-22 02:11:43

标签: string vector integer

所以我有一个带有n个数字元素的向量。我想用这些元素制作m位数字。 m和n将由用户给出。

例如:

如果原始矢量是{0,1,2,3,4,5,6,7,8},我希望新矢量为{012,345,678}。

因此,我们现在有3个三位数元素,而不是9个一位数元素。用户再一次给出n和m的值。

现在我已经能够通过将元素转换为字符串并附加它们来实现此目的。但问题是阵列大小需要非常大(大约300万长)。

当我将逻辑用于这个长值时,编译需要很长时间。这就是我目前所拥有的。

vector<string> list_generator(int *array,int m, int combinations)
{
string ryan, temp;
stringstream aStream;
vector<string> lexicographic;   

while (next_permutation(array, array + m))
{   
    for (int i = 0; i < m; i = i + m)
    {
        for (unsigned int j = i; j < m+ 1; j++)
        aStream << array[i];
        temp = aStream.str();
        ryan.append(temp);
        aStream.str("");
    }
    lexicographic.push_back(ryan);
    ryan.clear();
}
return (lexicographic);

}

有没有更快的方法来做到这一点。

0 个答案:

没有答案