对无零值的多维向量进行排序
Sort multidimensional vectors without null values
vector<vector<int>> sort_arr;
int n = 4, k = 2;
sort_arrsort_arr.resize(n);
for(int i = 0 ; i < n ; ++i){
sort_arrsort_arr[i].resize(k);
}
int sum = 16;
for(int i = 0 ; i < 2 ; ++i){
for(int j = 0 ; j < 2 ; j++){
sort_arrsort_arr[i][j] = sum;
sum--;
}
}
sort( sort_arrsort_arr.begin(), sort_arrsort_arr.end());
由于向量为4x2,而且我只将值放在前2行中,所以当我对向量进行排序时,我将前2行As呈0,0和0,0,以及在排序时如何忽略这些值?<<?/p>
如果您只想对填充的部分进行排序,请使用
sort(sort_arrsort_arr.begin(), sort_arrsort_arr.begin()+2);
您是否会更具体地说明您想实现的目标?排序时,您可以提供自己的比较操作员
template <class RandomAccessIterator, class Compare>
void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
有关更多信息,请阅读手册http://www.cplusplus.com/reference/algorithm/sort/
嗯,它们不是零值。它们是0,这是一个非常有效的数字。如果您只想要2行,只需添加两个行。只需执行int n = 2
而不是4
。
有了您提供的信息,您当然可以这样做:
sort(sort_arr.begin(), std::next(sort_arr.begin(),2));
这只会对前两个行进行排序。
c 中的 int
从来都不是 NULL
。如果您执行以下操作:
int val = (int)NULL;
val
的值是0
,它与任何其他值为0
的int
无法区分。如果您真的会在要忽略的多维向量中有那些NULL
"孔",我建议使用Nullable<int>
。
相关文章:
- 将结构向量排序为子组
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在对向量排序后更改索引值?c++
- C++向量排序给出0作为输出
- 将许多向量排序在一起
- 根据一个向量对多个向量排序
- 编译错误向量排序和联合
- C++我自己的函数进行向量排序
- 将字符串的向量排序为日期"yyyymmdd"
- C++ 通过使用旧向量进行预排序来改进向量排序
- C 向量排序 .h .cpp中的单独文件
- 向量排序-c++
- 将向量排序到一个无序映射c++11中
- 向量的向量排序
- c++向量排序方法编译失败,返回预期表达式
- 如何对bitset向量排序
- 向量排序的基础上只有先
- 我如何以相同的方式对两个向量排序,而条件只使用其中一个向量
- 列表排序和结构体向量排序之间的性能差距.c++
- 如何基于第二个字符串对字符串向量的向量排序