我有一个Visual Studio2008 C++函数,其中提供了一个以空结尾的字符串数组const char*和该数组中字符串数的计数。
我正在寻找一种将const char*数组转换为std::vector< std::string >的聪明方法
/// @param count - number of strings in the array
/// @param array - array of null-terminated strings
/// @return - a vector of stl strings
std::vector< std::string > Convert( int count, const char* array[] );Boost很好,STL也很好。
发布于 2010-12-17 02:42:42
像这样吗?:
vector< string > ret( array, array + count );发布于 2010-12-17 04:11:03
试试这个:
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
#include <iostream>
int main(int argc,char* argv[])
{
// Put it into a vector
std::vector<std::string> data(argv, argv + argc);
// Print the vector to std::cout
std::copy(data.begin(), data.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}发布于 2010-12-17 02:41:39
假设您的函数的签名无意中出错了,您的意思是这样的吗?
#include <algorithm>
#include <iterator>
#include <string>
#include <vector>
std::vector<std::string> Convert(int count, const char **arr)
{
std::vector<std::string> vec;
vec.reserve(count);
std::copy(arr, arr+count, std::back_inserter(vec));
return vec;
}
int main()
{
const char *arr[3] = {"Blah", "Wibble", "Shrug"};
std::vector<std::string> vec = Convert(3, arr);
return 0;
}https://stackoverflow.com/questions/4464208
复制相似问题