C++ 标准::向量<&燃气轮机;分配操作不工作;需要';清除';先动手术
我对我认为应该是一个非常简单的操作感到困惑。我调用了一个创建std::vector并返回它的方法。然后,我将现有的std::vector设置为该结果,希望=运算符能够工作。代码如下所示:C++ 标准::向量<&燃气轮机;分配操作不工作;需要';清除';先动手术,c++,std,stdvector,C++,Std,Stdvector,我对我认为应该是一个非常简单的操作感到困惑。我调用了一个创建std::vector并返回它的方法。然后,我将现有的std::vector设置为该结果,希望=运算符能够工作。代码如下所示: std::vector<BTLECharDecl> charDeclList; charDeclList.clear(); // get the services on the agent // It loads the discovered services into the class va
std::vector<BTLECharDecl> charDeclList;
charDeclList.clear();
// get the services on the agent
// It loads the discovered services into the class variable 'serviceList'
if((result = discoverServices()) != rc_SUCCESS)
{
std::cout << "Discovering service failed. Function returned message "
<< eResultCode2str(result) << "(" << hex << result << dec << ")" << endl;
return result;
}
if(serviceList.size() > 0)
{
for(uint16 i = 0; i < serviceList.size(); i++)
{
// Get chararcteristic Declaration List as Objects for each service
startHandle = serviceList.at(i).getServiceData().startHandle;
endHandle = serviceList.at(i).getServiceData().endHandle;
if(startHandle < endHandle)
{
// !! WHY DO I NEED THIS clear()?? !!
charDeclList.clear();
charDeclList = discoverCharDecl(serviceList.at(i).getServiceData().startHandle, endHandle);
}
std::vector charDeclList;
charDeclList.clear();
//在代理上获取服务
//它将发现的服务加载到类变量“serviceList”中
如果((结果=discoverServices())!=rc\u成功)
{
std::cout听起来像是discoverCharDecl(serviceList.at(i).getServiceData().startHandle)中的某个东西(您没有发布任何代码)指向向量的内容。或者您错误地确定了赋值的结果。为了获得更好的帮助,发布了一篇文章。实际上,我已经完成了该方法,并且一切都很好。传入的两个参数只是整数。std::vector具有在方法末尾调用“return”之前应该具有的属性。在调用返回时,结果包含返回时不在对象中的其他内容。您需要发布MCVE;另一种可能是您的程序在到达此点之前导致UB。这不是std::vector的错误,而是您的部分逻辑错误。请发布更多代码,否则我们无法具体说明。li您是否引用了向量的内容并对其进行了处理。或者,这可能是由于未定义的行为导致的堆损坏。在任何情况下-需要更多代码:)