gpt4 book ai didi

c++ - 查找哪个元素未在列表中排序

转载 作者:行者123 更新时间:2023-11-30 04:05:10 24 4
gpt4 key购买 nike

我有一个包含数字 3、7、10、8、12 的列表。我想写一行来告诉我列表中的哪个元素没有排序(在本例中它是第 4 个元素).但是,我现在拥有的代码告诉我第 4 个元素 (8) 的值。有什么方法可以重写它以告诉我它是第 4 个元素而不是数字 8?

这是我现在的代码:

list<int>::iterator i;
if (!is_sorted(myList.begin(), myList.end())) {
i = is_sorted_until(myList.begin(), myList.end());
cout << *i << endl;
}

最佳答案

我要说的第一件事是,如果您关心数字位置,则应该使用随机访问容器,例如 std::vector。那么你的工作就很简单了:

// calling is_sorted is a waste if you're about to call is_sorted_until
auto i = is_sorted_until(my_vector.begin(), my_vector.end());
if (i != my_vector.end())
cout << (i - my_vector.begin());

如果您必须使用列表,并且您仍然需要位置,那么您应该编写自己的算法来提供此信息。它真的不应该那么难,它只是一个 for 循环,将每个元素与它之前的元素进行比较。当你找到一个比处理它的比较少的元素时,你就找到了你的元素。只需在它旁边保留一个整数计数,就可以了。

关于c++ - 查找哪个元素未在列表中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23420677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com