-1
以下のコードでは、regex_token_iteratorの値をstd :: vectorにコピーできません。 Visual Studio 2015では、パラメータ付きの「std :: copy」が安全でない可能性があると報告しています。std :: regex_token_iteratorをstd :: vectorにコピーする方法は?
誰でもどのように修正することができますか?
#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <regex>
int main()
{
// String to split in words
std::string line = "dir1\\dir2\\dir3\\dir4";
// Split the string in words
std::vector<std::string> to_vector;
const std::regex ws_re("\\\\");
std::copy(std::sregex_token_iterator(line.begin(), line.end(), ws_re, -1),
std::sregex_token_iterator(),
std::back_insert_iterator<std::vector<std::string>>(to_vector));
// Display the words
std::cout << "Words: ";
std::copy(begin(to_vector), end(to_vector), std::ostream_iterator<std::string>(std::cout, "\n"));
}
それが関連するのかどうか、私は確かに知っていないが、しかし、あなたは期待する関数へのベクトルを与えていますイテレータ。 – chris
ありがとう、私はどのようにベクトル上の挿入前方イテレータを渡す検索します。 –
あなたのベクトルは空です。あなたはback_inserterを使用する必要があります。 –