c++ std::vector<char>保存进string里

std::vector<char>c中保存了一些数据,我想转存到一个string里需要怎么转std::stringstr_2(c.begin(),c.end());我用了... std::vector<char> c
中保存了一些 数据,我想转存到一个string里需要怎么转

std::string str_2(c.begin(),c.end());
我用了这个方法初始化,但是输出查看的值是口,像是溢出。
求!
展开
 我来答
兔子和小强
2013-06-18 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1427万
展开全部

这个方法是可以的,比如

#include <iostream>
#include <vector>
#include <string>
int main()
{
    char s[] = "Hello, World!", N = sizeof(s)/sizeof(char);
    vector<char> c(s, s+N);
    string str(c.begin(), c.end());
    // Will output "Hello, World!"
    cout << str;
}

可能你程序其他地方没设计好

更多追问追答
追问
N = sizeof(s)/sizeof(char);
我没这步,没理解
追答
sizeof(s)求出数组s的空间大小,
sizeof(s) / sizeof(char) 就可以求出字符数组s中含有几个字符
好比定义int a[] = {1, 2, 3}那么
sizeof(a) / sizeof(int) 等于 3
但是注意int a[4] = {1, 2, 3}那么
sizeof(a) / sizeof(int) 等于 4了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
80705041
2015-07-28 · TA获得超过469个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:221万
展开全部
std::vector<char> vec;

vec.push_back('a');

vec.push_back('c');

vec.push_back('b');

std::string str(&vec.front(), vec.size());

printf("===%s\n", str.c_str());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式