我正在尝试扩展别人的代码,它经常使用std :: queue和std :: pair类型.对于下面的代码,我需要扩展std :: pair.second中的变量数量,并希望它对于像数组这样的变量数量更加灵活(以便将来修改).
someClass->myQueue.push(std::pair<T1,uint64_t>(var1, var2));
Run Code Online (Sandbox Code Playgroud)
所以我尝试做类似的事情:
someClass->myQueue.push(std::pair<T1,uint64_t[N]>(var1,{e1,e2,...,eN}));
Run Code Online (Sandbox Code Playgroud)
在修改代码中的相关定义等后,我得到了以下错误和警告,我对此一无所知.然而,听起来这不是进行这种修改的适当方式.
myArray = myQueue.front().second;
^
error: invalid array assignment
...
someClass->myQueue.push(std::pair<T1,uint64_t[N]>(var1,{e1,e2,...,eN}));
^
warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
Run Code Online (Sandbox Code Playgroud)
我在网上看到了元组和std :: pair作为解决方案的递归用法,但我想对代码进行最小的更改,因为几个类将受此影响.这样做的正确方法是什么?
谢谢