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());

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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;
}

 

 

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());

posted @   生而为人,学无止境  阅读(32310)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示