C++ vector与string互转

1.vector转string

std::string Str = "hello world!";

std::vector<uint8_t> Vec;

Vec.assign(Str.begin(), Str.end());

2.string转vector

std::string Str;

std::vector<uint8_t> Vec(6, 7);

Str.assign(Vec.begin(), Vec.end());

#include <iostream>
#include <vector>
#include <string>

using std::string;
using std::vector;

int main()
{
    vector<unsigned char> Vec1;
    string Str{"123456"};

    Vec1.assign(Str.begin(), Str.end());
    std::cout << "String data is: " << std::endl;
    for(auto aa : Str)
        printf("%02x ", aa);
    std::cout << std::endl;
    std::cout << "Vector data is: " << std::endl;
    for(auto aa : Vec1)
        printf("%02x ", aa);
    std::cout << std::endl;
}

 

C++ vector与string互转

 

3.vector相关操作

Vec.erase(Vec.begin(), Vec.end())         /*删除所有*/

Vec.erase(Vec.begin())

Vec.clear()        /*删除所有*/

Vec.empty()      /*判断是否为空*/

Vec.capacity()  /*返回容器当前已分配的容量*/

Vec.front()        /*传回第一个数据*/

Vec.insert(Vec.begin(), 7)     /*在Vec起始位置插入数据7*/

Vec.push_back(8)                /*在尾部加入一个数据8*/

Vec.pop_back()                    /*删除最后一个数据*/

Vec.size()                             /*返回容器中实际数据的个数*/

Vec.rbegin()                          /*传回一个逆向队列的第一个数据*/

Vec.rend()                             /*传回一个逆向队列的最后一个数据的下一个位置*/

Vec.resize(num)                   /*重新指定队列的长度为num*/

Vec.reserve()                       /*保留适当的容量*/

Vec1.swap(Vec2)                  /*将Vec1和Vec2元素互换   swap(Vec1, Vec2)    */ 

 

4.string与char *

string str = "hello";

const char* p = str.data();

const char *p = str.c_str();

char cp[50];

str.copy(cp, 5, 0);             /*5代表复制几个字符,0代表复制的位置*/

char *chp[str.length() + 1];

strcpy(chp, str.c_str());

原文链接: https://www.cnblogs.com/programer96s/p/13089435.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++ vector与string互转

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/198670

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午7:55
下一篇 2023年2月12日 下午7:55

相关推荐