形成算法时未知的"vector"和"std"
Unknown typename "vector" and "std" when forming an algorithm
我是C 的初学者,在此任务中,我制作了一个程序,使用Bucket stort and Algorithm按升序顺序排列给定数组。关于使用矢量库以及表达用于包含数组的变量时,我遇到了许多错误。
是否有更简单的自然数实现?我发现的示例是使用桶形排序来对字母数字进行排序……等等,这使我感到困惑地了解应用于正数时的基础知识。
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
//function declaration
void display(int arr[], int size);
int getMax(int arr[], int size);
void bucketSort(int arr[], int size);
using namespace std;
void display(int arr[], int size) {
int i, m;
for(i = 0; i < size; i++) {
cout << m; {
m = arr[i];
}
}
return m;
}
void bucketSort(int arr[], int size) {
//variables
int max, bucket = 10, divider, i, j, k;
//10 buckets
vector B[bucket];
//find max and min
max = getMax(arr, size);
divider = ceil(float(max + 1) / bucket);
//insert element into bucket
for(i = 0; i < size; i++) {
j = floor( arr[i] / divider );
B[j].push_back(arr[i]);
}
//sort elements in the buckets
for(i = 0; i < bucket; i++) {
sort(B[i].begin(), B[i].end());
}
//append back the elements from the buckets
k = 0;
for(i = 0; i < bucket; i++) {
for(j = 0; j < B[i].size(); j++) {
arr[k++] = B[i][j];
}
}
}
int main(void) {
//unsorted elements
int arr[] = {22,45,12,8,10,6,72,81,33,18,50,14};
//size of the array
int n = sizeof(arr)/sizeof(arr[0]);
//output unsorted elements
display(arr, n);
//sort the elements
bucketSort(arr, n);
//display sorted elements
display(arr, n);
return 0;
}
您不能只要求一个向量...您必须告诉它,的向量是什么?
在您的情况下,您似乎想要一系列int
s的向量,所以:
vector<int> B[bucket];
您的下一个问题是您不能具有可变大小的数组。
请参阅您的C 书籍以获取有关所有这些内容的更多信息。
相关文章:
- 尝试使用 std::vector<std::thread时出现静态断言失败错误>
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- 连接和压缩标准::vector<std::字符串的最佳方法>
- C++从 std::vector<std::function<中删除 std::function>>
- 如何在构造函数初始值设定项列表中使用 n 个元素初始化 std::vector<std::time_t>
- 如何使用 CUDA 将 std::vector<std::string> 复制到 GPU 设备
- 编译错误 std::vector<std::shared_ptr<T>>迭代器和擦除方法
- 将 std::vector<std::unique_ptr<T>> 移动到 std::vector<std::shared_ptr<T>>
- 如何从 boost::container::vector<std::string>::iterator 访问索引和对象?
- 使用 std::vector<std::future<int>> 和 std::async 启动几个线程时中止
- 为什么转置这个 std::vector<std::vector<std::string> > 这么慢?
- 是否有可能在没有复制的情况下传递 std::vector<int> 作为参数来获得 std::vector<std::array<int, 3>>?
- 在 boost::<double>asio::buffer 中使用像 std::vector<std::complex> 这样的参数
- 如何从 std::initializer_list<char const* 构建 std::vector<std::string>>
- 如何检查 std::vector<std::string> 的元素是否以某个子字符串开头?
- 在 std::vector<std::vector 中重新存储内部向量<TYPE>>
- 将 std::vector<std::string> 转换为 const char* const*
- 不能将结构push_back() 转换为 std::vector<std::shared_ptr<theStruct>> theVector
- SWIG:传递一个 std::vector< std::vector <double> >指向 python 的指针
- 将 std::vector<std::p air<const K, V>*> 转换为 std::vector<std::p air<const K, V>&g