Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对c++;按FIFO顺序映射? 我正在寻找一种方法来排序FIFO顺序(先入先出)< /P>中的C++映射。_C++_Sorting_Map - Fatal编程技术网

如何对c++;按FIFO顺序映射? 我正在寻找一种方法来排序FIFO顺序(先入先出)< /P>中的C++映射。

如何对c++;按FIFO顺序映射? 我正在寻找一种方法来排序FIFO顺序(先入先出)< /P>中的C++映射。,c++,sorting,map,C++,Sorting,Map,在FIFO中,我们假设一个元素将在开头插入,其中删除操作将在末尾进行 因此,如果我们假设当前代码是用于对映射进行排序的比较器 struct classcomp{ 布尔运算符()(常量字符和lhs、常量字符和rhs)常量 {返回false;} }; 如果我们假设第一个元素是映射中的现有元素,而第二个元素是要插入的元素,那么我的映射是否有可能按FIFO顺序排序 谢谢,地图和任何标准关联容器已经排序,不能以不同方式排序 如果您希望在一个容器中维护多个元素顺序,例如,按某个键(映射)和插入顺序(列表)排

在FIFO中,我们假设一个元素将在开头插入,其中删除操作将在末尾进行

因此,如果我们假设当前代码是用于对映射进行排序的比较器

struct classcomp{
布尔运算符()(常量字符和lhs、常量字符和rhs)常量
{返回false;}
};

如果我们假设第一个元素是映射中的现有元素,而第二个元素是要插入的元素,那么我的映射是否有可能按FIFO顺序排序


谢谢,

地图和任何标准关联容器已经排序,不能以不同方式排序


如果您希望在一个容器中维护多个元素顺序,例如,按某个键(映射)和插入顺序(列表)排序,您可以使用来执行此操作,它有很好的文档记录。

映射和任何标准关联容器已经排序,不能以不同方式排序


如果您希望在一个容器中维护多个元素顺序,例如,按某个键(映射)和插入顺序(列表)排序,您可以使用来执行此操作,它有很好的文档记录。

映射和任何标准关联容器已经排序,不能以不同方式排序


如果您希望在一个容器中维护多个元素顺序,例如,按某个键(映射)和插入顺序(列表)排序,您可以使用来执行此操作,它有很好的文档记录。

映射和任何标准关联容器已经排序,不能以不同方式排序


如果您希望在一个容器中维护多个元素顺序,例如,按某个键(映射)和插入顺序(列表)排序,您可以使用,这是有很好的文档记录的。

我偶尔会遇到同样的问题,下面是我的解决方案:。这是一个仅限页眉的C++11解决方案,可以作为
std::map
的替代品

例子
#包括“src/fifo_map.hpp”
//为了方便
使用nlohmann::fifo_映射;
int main(){
//使用模板参数创建fifo_映射
先进先出图;
//添加元素
m[2]=“两个”;
m[3]=“三”;
m[1]=“一”;
//输出地图;将打印
//2:2
//3:3
//1:1
用于(自动x:m){

std::cout我偶尔也会遇到同样的问题,下面是我的解决方案:。这是一个只有标题的C++11解决方案,可以用作
std::map
的替代品

例子
#包括“src/fifo_map.hpp”
//为了方便
使用nlohmann::fifo_映射;
int main(){
//使用模板参数创建fifo_映射
先进先出图;
//添加元素
m[2]=“两个”;
m[3]=“三”;
m[1]=“一”;
//输出地图;将打印
//2:2
//3:3
//1:1
用于(自动x:m){

std::cout我偶尔也会遇到同样的问题,下面是我的解决方案:。这是一个只有标题的C++11解决方案,可以用作
std::map
的替代品

例子
#包括“src/fifo_map.hpp”
//为了方便
使用nlohmann::fifo_映射;
int main(){
//使用模板参数创建fifo_映射
先进先出图;
//添加元素
m[2]=“两个”;
m[3]=“三”;
m[1]=“一”;
//输出地图;将打印
//2:2
//3:3
//1:1
用于(自动x:m){

std::cout我偶尔也会遇到同样的问题,下面是我的解决方案:。这是一个只有标题的C++11解决方案,可以用作
std::map
的替代品

例子
#包括“src/fifo_map.hpp”
//为了方便
使用nlohmann::fifo_映射;
int main(){
//使用模板参数创建fifo_映射
先进先出图;
//添加元素
m[2]=“两个”;
m[3]=“三”;
m[1]=“一”;
//输出地图;将打印
//2:2
//3:3
//1:1
用于(自动x:m){


std::难道不能这样做吗?您的比较器不满足
std::map
的要求。也许您需要
std::queue
?感谢您的快速回复!或者如果还需要随机访问,则需要
std::deque
。无论哪种方式,
std::map
都是您尝试的错误容器。该比较器或将导致未定义的行为,因为它不提供“严格弱排序”。例如,使用该比较器,一个元素将同时小于、大于和等于任何其他元素。如果您想要FIFO排序,为什么要使用
map
?这是无法做到的。您的比较器不满足
std::map
的要求。也许您需要
std::queue
?感谢您的快速reply!或
std::deque
如果还需要随机访问。无论哪种方式,
std::map
都是错误的容器,它听起来像是您正在尝试的。该比较器将导致未定义的行为,因为它不提供“严格的弱顺序”。例如,使用该比较器,一个元素将同时小于、大于和等于任何其他元素。如果您想要FIFO排序,为什么要使用
map
?这是无法做到的。您的比较器不满足
std::map
的要求。也许您需要
std::queue
?感谢您的快速reply!或
std::deque
如果还需要随机访问。无论哪种方式,
std::map
都是错误的容器,它听起来像是您正在尝试的。该比较器将导致未定义的行为,因为它不提供“严格的弱顺序”。例如,使用该比较器,一个元素将同时小于、大于和等于任何其他元素。如果您想要FIFO排序,为什么要使用
map
?这是无法做到的。您的比较器不满足
std::map
的要求。也许您需要
std::queue
?谢谢您的提问
#include "src/fifo_map.hpp"

// for convenience
using nlohmann::fifo_map;

int main() {
    // create fifo_map with template arguments
    fifo_map<int, std::string> m;

    // add elements
    m[2] = "two";
    m[3] = "three";
    m[1] = "one";

    // output the map; will print
    // 2: two
    // 3: three
    // 1: one
    for (auto x : m) {
        std::cout << x.first << ": " << x.second << "\n";
    }

    // delete an element
    m.erase(2);

    // re-add element
    m[2] = "zwei";

    // output the map; will print
    // 3: three
    // 1: one
    // 2: zwei
    for (auto x : m) {
        std::cout << x.first << ": " << x.second << "\n";
    }
}