怎么使用STL中的sort与vector对二维数组(矩阵)实现按行排序
如何使用STL中的sort与vector对二维数组(矩阵)实现按行排序?
例如数组如下:
18 64 36 2
7 15 28 94
16 61 33 5
希望排序后的结果是
2 18 36 64
7 15 28 94
5 16 33 61
作为一个初学者,要用vector!要用sort!要用vector!要用sort!要用vector!要用sort!重要的事情说三遍。谢谢大大们了!
------解决思路----------------------
------解决思路----------------------
例如数组如下:
18 64 36 2
7 15 28 94
16 61 33 5
希望排序后的结果是
2 18 36 64
7 15 28 94
5 16 33 61
作为一个初学者,要用vector!要用sort!要用vector!要用sort!要用vector!要用sort!重要的事情说三遍。谢谢大大们了!
------解决思路----------------------
vector<int> a, b;
a.push_back(18);//18 64 36 2
a.push_back(64);
a.push_back(36);
a.push_back(2);
b.push_back(7);
b.push_back(15);
b.push_back(28);
b.push_back(94);
vector<vector<int> > vec2;
vec2.push_back(a);
vec2.push_back(b);
for (vector<vector<int> >::iterator it = vec2.begin(); it != vec2.end(); ++it)
{
sort(it->begin(), it->end());
}
for (vector<vector<int> >::iterator it = vec2.begin(); it != vec2.end(); ++it)
{
for (vector<int>::iterator itor = it->begin(); itor != it->end(); ++itor)
{
cout << *itor << " ";
}
cout << endl;
}
------解决思路----------------------
int myints[3][4] =
{
{18, 64, 36, 2},
{7, 15, 28, 94},
{16, 61, 33, 5}
};
for (int i = 0; i < 3; i++)
{
std::vector<int> myvector(myints[i], myints[i] + 4);
std::sort(myvector.begin(), myvector.end());
std::vector<int>::iterator it;
for (it = myvector.begin(); it != myvector.end(); it++)
{
std::cout << *it << std::endl;
}
}