我试图通过具有相同长度的另一个向量(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 ;?
答案 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
向量中的任何值。