wxWidgets wxVector 排序

Posted

技术标签:

【中文标题】wxWidgets wxVector 排序【英文标题】:wxWidgets wxVector Sort 【发布时间】:2020-12-12 13:13:58 【问题描述】:

我对排序向量有疑问。我有如下代码,我不明白为什么这个函数排序不排序我的向量。我也试过 wxVectorSort 也不行

wxTextFile file( wxT("myfile.txt") );
    wxString text;
    wxVector<wxString> fileLines;

  wxString pobierz;


        file.Open();
        for(size_t i=0; i<file.GetLineCount(); i++)
            text << file.GetLine(i)<< wxT("\n");
            fileLines.push_back(text);

        
        file.Close();

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



 for (wxVector<wxString>::iterator it = fileLines.begin() ; it != fileLines.end(); ++it)

     TextCtrl_wczytaj->SetValue(*it);
 

有人可以提供一些建议如何对这个向量进行排序吗?求回答

【问题讨论】:

【参考方案1】:

假设您指的是排序数字,如“11”与“2”(如在这个非常相似的 wxWidgets 论坛中post),您可以尝试使用wxSortedArrayString 和可用的sorting functions 之一:

wxStringSortAscending

wxDictionaryStringSortAscending

wxNaturalStringSortAscending (以及他们的 *Descending 同行)

wxCmpNatural

wxCmpNaturalGeneric

  wxSortedArrayString sas(wxNaturalStringSortAscending);

  sas.Add("2");
  sas.Add("11");
  sas.Add("3");
  // final order is "2", "3", "11"

【讨论】:

【参考方案2】:

另外,请记住,强烈建议不要使用 std::vector、std::list 等与 wx 对应项。

wx 容器类的存在是为了向后兼容,最好不要在新编写的代码中使用它们

【讨论】:

以上是关于wxWidgets wxVector 排序的主要内容,如果未能解决你的问题,请参考以下文章

描述wxWidgets中事件处理的类型转化

Visual Studio 2015编译wxWidgets

用标准的Window 用wxWidgets 绘制成?

如何更改 wxWidgets 中的 StatusBar 字体颜色?

Win7 VS2015编译wxWidgets-3.1.0

QT vs wxwidget vs MFC