添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
大力的眼镜  ·  声学特征 ...·  1 年前    · 
15328076128  ·  Linux x86_64 ...·  3 年前    · 
风流倜傥的饭卡  ·  Spring ...·  1 年前    · 
深情的香槟  ·  Spring ...·  1 年前    · 

有时候也会遇到std:vector与转std:string 相互转换的情况。

首先看一下 vector<char> 如何转string:

std::vector<char> *data = response->getResponseData();
std::string res;
//方法一
for (int i = 0;i<data->size();++i) {
  res+=(*data)[i];
res+='\0';
std:cout << res;
 //方法二
std::vector<char> *data = response->getResponseData();
std::string res;
res.insert(res.begin(), data->begin(), data->end());
std::cout << res;
 //方法三
std::vector<char> *data = response->getResponseData();
std::string res;
const char* s = &(*data->begin());
res = std::string(s, data->size());
std::cout << res;
//方法四
string ch = "what a fucking day!";
vector <char> ta;
ta.resize(ch.size());
ta.assign(ch.begin(),ch.end());

string 转vector就会更容易:

vector <char> ta = {‘a’, 'b', 'c'};
ch.clear();
ch.assign(ta.begin(),ta.end());

================================================================
vector to stringstream

#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <iterator>
 // Dummy std::vector of strings
 std::vector<std::string> sentence;
 sentence.push_back("aa");
 sentence.push_back("ab");
 // Required std::stringstream object
 std::stringstream ss;
 // Populate
 std::copy(sentence.begin(), sentence.end(),std::ostream_iterator<std::string>(ss,"\n"));
 // Display
 std::cout<<ss.str()<<std::endl;
std::vector&lt;char&gt; *data = response-&gt;getResponseData(); std::string res; //way1 for (int i = 0;i&lt;data-&gt;size();++i) { res+=(*data)[i]; res+='\0'; std:cout &lt;&lt; res; char vstr[] = "abcdef!"; int N = sizeof(vstr) / sizeof(char); vector<char> v(vstr,vstr+N); //定义一个间数组,用于下面给string对象赋值 char str[sizeof(v)] = " "; //把vector的内容赋值到字符数组 for(int = 0;... data_vectorvector<char>类型, 上面循环的data实际是data_vector的每一项的拷贝。 因此,循环对data的修改不会反映到data_vector。 希望在循环对i做一些操作, 那么可以声明data为
C++程序时经常会遇到stringvector<char>和(const)char *之间的转换,本文介绍了其间的转换方法和注意事项。 1. stringvector<char> string所存储字符串不包含'\0',所以vector后,通过vector.data()直接输出会有问题,会往后找直到'\0',会出现乱码。所以应该在vector后手动再加上'\0',这样在vector.data()输出字符串就没问题了。但此时vector.size()会比string.le