在C++ 11中,

vector<string> blockPathList;
for(int i = 0; i < blockNum; i++)
{
    blockPathList.push_back(desPath + "part" + to_string(i));
}

是否可以重新编写上面的代码,例如列表理解,或更短更简洁?

最佳答案

您要使用第三方库吗? Eric Niebler的range-v3允许:

std::vector<string> blockPathList =
        view::ints(0, blockNum)
        | view::transform([&desPath](int i) {
            return desPath + "part" + std::to_string(i);
        });

就像您将要使用C++一样,这与功能列表理解有关。

关于c++ - 如何生成 vector ,例如列表理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36339533/

10-10 22:17