我觉得我对冒泡排序有点困惑。但我的主要问题是将命令行参数转换为典型数组,而不是argv。在命令行参数上使用冒泡排序C++
我在想通过循环遍历argv
我可以puch.back到一个向量然后使用我的气泡排序函数它向量。
我想从命令行中从A到Z顺序,然后从Z到A顺序进行排序。
任何与我的代码的帮助,不胜感激。 请添加评论,以便我更好地理解为什么这对我来说很困难。
谢谢!
#include <cstdlib>
#include <iostream>
#include <vector>
void swap(int [], int, int);
void bubble_sort(std::string args[], int);
void bubbleSort(std::string args[], int n) {
bool swapped = true;
int j = 0;
std::string tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < n - j; i++) {
if (args[i] > args[i + 1]) {
tmp = args[i];
args[i] = args[i + 1];
args[i + 1] = tmp;
swapped = true;
}
}
}
}
int main(int argc, char * argv[])
{
std::vector<std::string> args(argv, argv + argc);
for (int i = 0; i < argc; i++)
{
args.push_back(argv[i]);
}
long vector_size = args.size();
bubble_sort(args,vector_size);
return 0;
}
请解释下投票,我将编辑我的问题。谢谢。 – wuno 2014-11-25 07:04:57
我们不是编译器。你已经发布了预期的行为,但你还必须发布你得到的结果(编译器错误,错误的输出等)。 – bolov 2014-11-25 07:46:06