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;
}

 

Vector<android::String8> 输出 vector to 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());