8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用 std::vector::insert 将字符串插入 uint8_t 向量中,将随机数据放入其中

Staša Sekulić 2月前

43 0

我正在将数据序列化为 uint8_t 向量以将其发送到另一个模块,我有一个从函数 getVal() 返回的字符串,当我执行 vector.insert() 时,它会显示更多的随机值...

我正在将数据序列化为一个 vector uint8_t 将其发送到另一个模块,我有一个从函数返回的字符串 getVal() ,当我执行 vector.insert() 此操作时,它会在我的向量中显示更多的随机值。


std::string getVal() 
{
    std::string x = "564";
    return x ; 
}

int main() 
{ 
    std::vector<uint8_t> data {0x70}; 

    data.insert(data.end(),getVal().begin(),getVal().end());

    for (auto i:data)
        std::cout << i <<std::endl; 
    
    std::cout<<data.size()<<std::endl;
    std::cout << getVal() <<" ,type: "<< sizeof(getVal()) << ", .size(): "<< getVal().size()<<std::endl; 


    return 0; 
}

感谢你的帮助。

解决方案是循环遍历字符串并使用 .push_back() ,但我需要了解为什么会发生这种情况 .insert() .

帖子版权声明 1、本帖标题:使用 std::vector::insert 将字符串插入 uint8_t 向量中,将随机数据放入其中
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Staša Sekulić在本站《string》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 因为 getVal 按值返回,所以两次调用将返回两个不同且不相关的 std::string 对象。

    begin end 将与不同的对象相关,将它们一起使用将导致 未定义的行为 .

    您要么需要创建一个静态字符串并返回对它的引用。要么您需要存储 getVal 返回的字符串并使用该对象。

返回
作者最近主题: