订购向量,订单未在此范围内声明(库?)

时间:2014-08-25 11:16:32

标签: c++ vector containers libraries

我试图通过具有相同长度的另一个向量(values,int)来排序向量(字符串)。现在,问题似乎很容易解决,我的问题不是如何解决这个问题,而是我的错误在哪里,以下将给我错误"' order'未在此范围内宣布"由编译器。

如果x是一个向量,而另一个向量,我会过去,或类似的东西(如上所述,这不是问题):

x[sort(order(y.begin(), y.end(), greater<int>()))];

或类似的东西。现在显然订单不包括在内。我有以下库/容器:

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <ctime>
#include <algorithm>
#include <functional>

现在,我需要另一个库/容器才能使用&#39; order&#39 ;?

2 个答案:

答案 0 :(得分:0)

标准库中没有名为order的函数。这就是你的错误所在。

该行中的其他一些错误:

std::sort需要2或3个参数。第一个和最后一个迭代器和可选的比较器,它们与您现在传递给order的参数完全匹配。您目前正在通过order返回sort的任何内容,这是错误的。

std::sort会返回void,因此您无法将其返回值传递给operator[]的{​​{1}}。

要做你想做的事,最简单的解决方案是将值放在x中。如果你真的需要一个字符串向量,那么将值复制到一个向量。

答案 1 :(得分:0)

不幸的是,您没有提供完整的示例,也不清楚为什么您希望找到函数order。它不是c ++语言语法本身的一部分,order命名空间中也没有std函数。您也不自己提供order功能。所以编译器完全正确地告诉你&#34;&#39; order&#39;未在此范围内宣布&#34;

此外,假设sort函数意味着std::sort,这也不起作用。 std::sort需要2或3个参数,并且不返回任何值,因此没有索引可以引用x向量中的任何值。