使用数字占位符从文件中按字母顺序排序

Skathix

我有一个列表,我需要按字母顺序排序,但是在这种情况下,由于该列表最初是按时间顺序列出的,因此我还需要保持其原始位置。我已经按字母顺序对列表进行排序,我不知道如何添加按时间顺序排列的位置。

有任何想法吗?

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

ifstream fin("prez.dat");
ofstream fout("sorted.dat");

void main()
{
    //fin.open("prez.dat");
    //fout.open("sorted.dat");
    vector<string> names;

    if(!fin.is_open())
    {
        cout << "Unable to open file..." << endl;
    }

    string word;

    while(getline(fin, word))
        names.push_back(word);

    sort(names.begin(), names.end());

    for (size_t i=0; i <names.size(); i++)
        cout << names[i] << '\n';

    system("pause");

}//End of void main()

编辑:我正在寻找:

该文件如下所示:

苹果橙香蕉

我需要的是:苹果1香蕉3橙2

爱德华

一种解决方法是将输入字符串和原始序数位置都保留在一个对象中。然后仅根据对象的字符串部分进行排序,然后为每个对象同时发出字符串和原始顺序位置。

例如,对于您的班级,您可以这样:

class MyData {
private:
    std::string s;  // the string read from the file
    unsigned ord;   // original position of the string
public:
    // standard constructor
    MyData(std::string str, unsigned order) : s(str), ord(order) {}  
    // this allows you to use "std::cout << md;"
    friend std::ostream& operator<<(std::ostream& out, const MyData &m) {
        return out << m.s << ' ' << m.ord;
    }
    static bool cmp(const MyData &a, const MyData &b) {
        return a.s < b.s;
    }
};

然后,您所需要做的就是创建和推送对象,并定义要与一起使用的比较操作std::sort有关详细信息和如何执行此部分的示例,请参见此参考

这是一种方法:

#include <algorithm>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>

// MyData code goes here

int main(int argc, char *argv[]) {
    if (argc < 2) {
        std::cout << "Usage: sortfile filename\n";
        return 0;
    }
    std::vector<MyData> vec;
    std::string line;
    int i=1;
    for(std::ifstream in(argv[1]); std::getline(in, line); ++i) 
        vec.push_back(MyData(line, i));
    std::sort(vec.begin(), vec.end(), MyData::cmp);
    std::cout << "vec contains:\n";
    for (auto md : vec)
        std::cout << md << '\n';
}

当编译时(如C ++ 11),我从这个输入文件中调用了该文件fruit.txt

Apple
Orange
Banana

使用该文件./sorted fruit.txt可得到以下结果:

vec contains:
Apple 1
Banana 3
Orange 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按字母数字顺序排序

来自分类Dev

如何使用Debian按数字(逻辑)升序但字母顺序排序

来自分类Dev

按字母,数字,特殊字符顺序排序

来自分类Dev

如何检查文件中的行是否按字母顺序排序

来自分类Dev

如何使用python将保存在.txt文件中的乐谱和名称按字母顺序排序?

来自分类Dev

如何使用gedit按字母顺序对文本文件中的行进行排序

来自分类Dev

在数组perl中按数字对数字和按字母顺序排序

来自分类Dev

如何)排序使用.stream在库数据中按字母顺序(

来自分类Dev

如何使用python中的while循环按字母顺序排序?

来自分类Dev

使用索引在 postgresql 中按字母顺序排序。

来自分类Dev

按字母顺序对文件排序

来自分类Dev

按字母顺序对文件排序

来自分类Dev

如何按字母顺序对字母数字列表进行排序

来自分类Dev

按字母顺序对数据表进行字母排序,然后按R中的数字值排序

来自分类Dev

在Go中按数字顺序对文件进行排序

来自分类Dev

Laravel / PHP:按字母顺序排序,顺序为数字

来自分类Dev

如何在C ++中从对数字进行排序到按字母顺序进行排序

来自分类Dev

在 linux 中按字母数字顺序对数字进行优先排序

来自分类Dev

如何使用Python按字母数字顺序按值对字典排序?

来自分类Dev

如何使用sort_by按字母顺序然后按数字顺序然后按特殊字符排序

来自分类Dev

在Rails中按字母顺序排序

来自分类Dev

使用compareTo()按字母顺序对LinkedList排序?

来自分类Dev

如何按数字而不是字母顺序对文件名集合进行排序?

来自分类Dev

按数字顺序对文件进行排序

来自分类Dev

在Android中按字母顺序对文件列表,文件夹和文件进行排序

来自分类Dev

在Android中按字母顺序对文件列表,文件夹和文件进行排序

来自分类Dev

如何在数据透视表中按字母数字顺序对列数据进行排序?

来自分类Dev

PHP中的二维数组的数字然后按字母顺序排序

来自分类Dev

在jQuery中按字母和数字排序

Related 相关文章

  1. 1

    按字母数字顺序排序

  2. 2

    如何使用Debian按数字(逻辑)升序但字母顺序排序

  3. 3

    按字母,数字,特殊字符顺序排序

  4. 4

    如何检查文件中的行是否按字母顺序排序

  5. 5

    如何使用python将保存在.txt文件中的乐谱和名称按字母顺序排序?

  6. 6

    如何使用gedit按字母顺序对文本文件中的行进行排序

  7. 7

    在数组perl中按数字对数字和按字母顺序排序

  8. 8

    如何)排序使用.stream在库数据中按字母顺序(

  9. 9

    如何使用python中的while循环按字母顺序排序?

  10. 10

    使用索引在 postgresql 中按字母顺序排序。

  11. 11

    按字母顺序对文件排序

  12. 12

    按字母顺序对文件排序

  13. 13

    如何按字母顺序对字母数字列表进行排序

  14. 14

    按字母顺序对数据表进行字母排序,然后按R中的数字值排序

  15. 15

    在Go中按数字顺序对文件进行排序

  16. 16

    Laravel / PHP:按字母顺序排序,顺序为数字

  17. 17

    如何在C ++中从对数字进行排序到按字母顺序进行排序

  18. 18

    在 linux 中按字母数字顺序对数字进行优先排序

  19. 19

    如何使用Python按字母数字顺序按值对字典排序?

  20. 20

    如何使用sort_by按字母顺序然后按数字顺序然后按特殊字符排序

  21. 21

    在Rails中按字母顺序排序

  22. 22

    使用compareTo()按字母顺序对LinkedList排序?

  23. 23

    如何按数字而不是字母顺序对文件名集合进行排序?

  24. 24

    按数字顺序对文件进行排序

  25. 25

    在Android中按字母顺序对文件列表,文件夹和文件进行排序

  26. 26

    在Android中按字母顺序对文件列表,文件夹和文件进行排序

  27. 27

    如何在数据透视表中按字母数字顺序对列数据进行排序?

  28. 28

    PHP中的二维数组的数字然后按字母顺序排序

  29. 29

    在jQuery中按字母和数字排序

热门标签

归档