我有一个项目,要求我按一定列读取和排序从.csv文件读取的值。
我正在C ++中使用算法库,即#include <algorithm>
该库具有我打算利用的功能sort()
。
它要求我指定例如vect的2d向量的开始和结束,它将同时需要vect.begin()
和vect.end()
。
我的问题是,是否可以为sort()函数指定确切的开始位置和结束位置。就像从vect [1] [0]开始到vect [9] [9]结束一样。
谢谢你的帮助
最佳答案
既然知道迭代的顺序,就可以指定相对于开始的元素。
vect.begin() // first element
vect.begin() + 2 // third element
因此,如果您只想排序第一个元素,例如10个元素,请使用以下内容:
std::sort(vect.begin(), vect.begin() + 10);
更多here。
正如其他人已经提到的那样,您不能真正对2D向量进行排序。因此,您可以将每个向量单独排序或将其展平为一维向量,然后使用索引计算进行二维解释。
关于c++ - 为C++选择begin()和end(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48766657/