我的list<int>
内容为3,2,1
。
在列表上调用std::list::sort()
后,整数内容的顺序不会改变。为什么会这样?
#include <list>
int main()
{
std::list<int> list, list1;
list.push_back(1);
list.push_back(2);
list.push_back(3);
list1.push_back(3);
list1.push_back(2);
list1.push_back(1);
list1.sort();
return list == list1;
}
在我的代码中我一直都是假的,为什么?
我在使用visual studio intellisense调用sort()
函数之前和之后查看了列表的内容,并且我观察到排序顺序没有变化,从而证明了相等性测试的结果。
从目视观察中,使用intellisense,有理由相信排序功能不起作用。
我将数据结构更改为向量,以便我有
class Greaterthan : std::binary_function<int,int,bool>
{
public:
result_type operator()(first_argument_type first,second_argument_type second)
{
return (result_type)(first < second);
}
}
然后,我重新编写了代码
#include <vector>
int main()
{
std::vector<int> list, list1;
list.push_back(1);
list.push_back(2);
list.push_back(3);
list1.push_back(3);
list1.push_back(2);
list1.push_back(1);
list1.sort(Greaterthan());
return list == list1;
}
但是,同样的事情发生了。为什么呢?
答案 0 :(得分:-2)
所以当你有这样的事情时:
ImageContext imageContext = new ImageContext();
List<String> languages = new ArrayList<>();
languages.add("pl");
imageContext.setLanguageHints(languages);
annotateImageRequest.setImageContext(imageContext);
列表如下:[1,2,4]
您应该向我们提供您的代码,以获得针对您的问题更详细的答案