这是我的问题:我得到了一堆文件,这些文件的名称类似于“_X1.bla.txt”、“_X101.bla.txt”、_X47.bla.txt,我用 boost::filesystem 读入这些文件,添加到 std::vector 。
正如您从示例中看到的,名称不以数字开头。在这个例子中,结果应该是 1、47、101。如果你告诉我如何从文件中提取数字,我应该能够自己对文件进行自动排序。
最佳 胡岛
最佳答案
如果容器中有所有名称(类似于 std::vector 文件名),您可以这样做
std::sort(filenames.begin(),filenames.end())
并且会使用默认的排序功能。如果你想要一个自定义的,你可以这样做:
struct sort_functor
{
bool operator ()(const std::string & a,const std::string & b)
{
return a < b;// or some custom code
}
};
void test()
{
std::vector<std::string> filenames;
std::sort(filenames.begin(),filenames.end(),sort_functor());
}
关于c++ - 使用 boost 文件系统对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723984/