C++ 标准::向量<&燃气轮机;分配操作不工作;需要';清除';先动手术

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并返回它的方法。然后,我将现有的std::vector设置为该结果,希望=运算符能够工作。代码如下所示:

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您是否引用了向量的内容并对其进行了处理。或者,这可能是由于未定义的行为导致的堆损坏。在任何情况下-需要更多代码:)