gpt4 book ai didi

c++ - c++中的队列指针和动态分配

转载 作者:行者123 更新时间:2023-11-28 03:21:15 25 4
gpt4 key购买 nike

我有这部分代码:

struct IARM_DATA
{
IARM_HANDLE handle;
float position[6]; //May be joint or linear position
float gripper_opening;
IARM_LIFT_POSITION lift_position;
bool foldIn; //true if foldin and false if fold out
bool openGripper;

IARM_DATA(IARM_HANDLE _handle, bool _foldIn):handle(_handle),foldIn(_foldIn){};

IARM_DATA(IARM_HANDLE _handle, IARM_LIFT_POSITION _lift_position):handle(_handle),
lift_position(_lift_position){}; //handle, lift_position

IARM_DATA(IARM_HANDLE _handle, volatile float _position[6], float _gripper_opening, IARM_LIFT_POSITION _lift_position):
handle(_handle),gripper_opening(_gripper_opening), lift_position(_lift_position)
{
for(int i=0; i<6; i++)
position[i] = _position[i];
}; //handle, position, gripper_opening, lift_position

} ;

typedef IARM_RESULT (iArmDriver::*singleMvt)(IARM_DATA);//这是 iArmDriver 方法上的指针。

typedef struct {
singleMvt mvt;
IARM_DATA data;
} ONE_MVT;

队列声明如下:

std::queue<ONE_MVT> *iarmActions;

我的问题是,由于该队列,我遇到了执行问题,我是否应该进行这样的动态分配:

iramActions = (std::queue<ONE_MVT> *)sife0f(std::queue<ONE_MVT> *); ??

提前致谢

最佳答案

您不应该使用动态分配。只需在自动存储中创建队列:

std::queue<ONE_MVT> iarmActions;

如果您真的需要动态分配(我对此表示怀疑),请使用 smart pointer .智能指针的确切类型取决于您的用例。此示例使用 unique_ptr,这通常是默认选择:

std::unique_ptr<std::queue<ONE_MVT>> iarmActions(new std::queue<ONE_MVT>());

关于c++ - c++中的队列指针和动态分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355233/

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