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());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具