gpt4 book ai didi

c++ - vector 和队列 C++

转载 作者:行者123 更新时间:2023-11-27 23:24:35 24 4
gpt4 key购买 nike

这是之前关于如何压缩 switch 语句的问题的后续问题。我使用了之前提供的输入,但在如何将我的元素插入 vector 中时遇到错误,但我认为这就是你在 C++ 中插入 vector 的方式?

std::queue<myStruct > myQueue1, myQueue2, myQueue3, myQueue4, myQueue5

void change(float posx, float posy, int idNumber){
myStruct newDir;
newDir.psX = posx;
newDir.psY = posy;

std::vector< std::queue<myStruct> > myVector (5);

myVector.begin();
myVector.insert (myQueue1);
myVector.insert (myQueue2);
myVector.insert (myQueue3);
myVector.insert (myQueue4);
myVector.insert (myQueue5);


if (idNumber >= 1 && idNumber<= 5){
myVector[idNumber-1].push (newDir);
}


}

TIA 感谢任何帮助。

最佳答案

vector::insert()用于在特定位置插入新元素(因此它需要一个位置参数)。你可能只想要 push_back()这会将新项目放在 vector 的末尾。为此,您不希望像您那样初始化 vector (这会在 vector 上放置五个空队列);只是默认初始化 vector :

std::vector< std::queue<locaRef> > myVector;

但还有一个问题是,您的 vector 包含类型为 std::queue<locaRef> 的元素,但是你放在 vector 上的队列是 std::queue<MyStruct> .即使您修复了类型的差异,您也需要记住,放入 vector 的是队列的拷贝,这可能是您想要的,也可能不是您想要的。如果您不想复制,您可能希望 vector 采用某种指针或智能指针指向您的队列对象。

关于c++ - vector 和队列 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289912/

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