为什么调用vector :: back()会删除向量后面的数据?

时间:2014-03-05 05:46:45

标签: c++ vector assign

我想将矢量背面的值分配给另一个元素:

iter->second.connection = myConnection->newConnections.back();

但是,这次通话有效地清除了.back()的内容 - 为什么?

来电前的数据:

fd                  int                 6   
sin_size            socklen_t           16  
theirAddress        sockaddr_storage    {...}   
ipstr               char [46]           0x60c498    

致电后:

fd                  int                 null    
sin_size            socklen_t           null    
theirAddress        sockaddr_storage    {...}   
ipstr               char [46]           0x88    

作为参考,I'尝试分配的类型是结构:

struct NodeConnection
{
    int fd;
    socklen_t sin_size;
    struct sockaddr_storage theirAddress; 
    char ipstr[INET6_ADDRSTRLEN];
    int port;
};

这是newConnections的声明:

vector<NodeConnection> newConnections;

0 个答案:

没有答案