📜  C++中数组的排序向量(1)

📅  最后修改于: 2023-12-03 15:29:53.375000             🧑  作者: Mango

C++中数组的排序向量

在C++中,有多种排序算法可以用来对数组进行排序,其中一种常用的方法是使用向量。向量是一种动态数组,可以根据需要自动调整大小。在这篇文章中,我们将介绍在C++中使用向量排序数组的基本操作。

创建向量

通过使用标准库中的vector类,可以在C++中创建向量。下面的代码片段演示如何创建一个包含五个元素的向量,并将它们设置为0。

#include <vector>
#include <iostream>

int main() {
  std::vector<int> v(5, 0);
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }
  return 0;
}

这个程序将输出“0 0 0 0 0”。

向向量中添加元素

向向量中添加元素可以使用成员函数push_back()。下面的代码片段演示了如何将整数添加到向量中,并在完成后使用循环打印向量。

#include <vector>
#include <iostream>

int main() {
  std::vector<int> v;
  v.push_back(1);
  v.push_back(2);
  v.push_back(3);
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }
  return 0;
}

这个程序将输出“1 2 3”。

使用向量排序数组

C++标准库中的sort()函数可以用来对数组进行排序。这个函数通常需要两个迭代器,一个指向数组的开头,一个指向数组的结尾。下面的代码片段展示了如何使用sort()函数对整型数组进行排序。

#include <algorithm>
#include <iostream>

int main() {
  int arr[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5 };
  std::vector<int> v(arr, arr + sizeof(arr) / sizeof(int));
  std::sort(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }
  return 0;
}

这个程序将输出“1 1 2 3 4 5 5 6 9”。

使用自定义比较函数

除了使用默认的比较函数,sort()函数还可以使用自定义的比较函数。下面的代码片段展示了如何使用自定义的比较函数来按照字符串长度对字符串数组进行排序。

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

bool compare_string_length(std::string a, std::string b) {
  return a.length() < b.length();
}

int main() {
  std::string arr[] = { "apple", "banana", "cherry", "date" };
  std::vector<std::string> v(arr, arr + sizeof(arr) / sizeof(std::string));
  std::sort(v.begin(), v.end(), compare_string_length);
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }
  return 0;
}

这个程序将输出“date apple cherry banana”。

总结

使用向量可以方便地对数组进行排序,并且在需要动态调整数组大小时非常有用。另外,在需要自定义比较函数进行排序时,sort()函数可以轻松实现。