小编Cec*_*ece的帖子

排序向量后访问值

我根据排序列表的索引对数据元素进行排序。当我需要对数据进行第二次或第三次排序时,我每次都需要将数据的原始顺序重新排序。如何再次访问以原始顺序存储的值?

decltype(m_data) new_m_datalast;
vector<int> m_newOrder;


for(int i=0; i< (int) m_data.size(); ++i)
    new_m_datalast.push_back(std::move(m_data[m_newOrder[i]]));

m_data = new_m_datalast;
Run Code Online (Sandbox Code Playgroud)

更新

 void Canvas::SetSortedOrder(std::vector<int> idxs)
  {
   m_newAxesOrder.clear();
   m_newAxesOrder = idxs;

   m_minmaxdata.clear();
   QString filename(":/simdata/minmax.csv");
   m_minmax = ReadCSV(filename);

  decltype(m_data) new_m_data;
  decltype(m_minmaxdata) new_m_minmaxdata;

  for(int i=0; i< (int) m_data.size(); ++i)
    new_m_data.push_back(std::move(m_data[m_newAxesOrder[i]]));

  for(int i=0; i< (int) m_minmaxdata.size(); ++i)
    new_m_minmax.push_back(std::move(m_minmax[m_newAxesOrder[i]]));

   m_data = new_m_data;
   m_minmax = new_m_minmax;
 }
Run Code Online (Sandbox Code Playgroud)

c++ sorting

1
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×1

sorting ×1