0

質問 1:最初に変換せずにfile://、a の URI の " " 部分を削除したいと考えています。アルゴリズムを使用してこれを書くことは可能ですか?boost::filesyetem::pathstd::stringboost::algorithm::replace_first

以下を試しましたが、コンパイルできません。

std::string s("file://"), empty("");
boost::filesystem::path path = oldPath.generic_string();
boost::algorithm::replace_first(path.generic_string(), s, empty);

コンパイル エラー:

cannot convert parameter 2 from 'std::_String_const_iterator<std::_String_val<std::_Simple_types<char>>>' to 'std::_String_iterator<std::_String_val<std::_Simple_types<char>>>'    

質問 2:boost::algorithm s は、文字列に適用される場合以外にどのような用途に使用されますか?

4

1 に答える 1

1

Aboost::filesystem::pathは文字の配列ではありません。内の文字を反復処理することはできません。また、含まれる文字列が特定のエンコーディングpathであると想定することもできません。ベクトルの各要素がパスの要素である場合、a を a として格納することは完全に合法です。pathstd::vector<SomeStringType>

つまり、path文字コンテナーではありません。それは特別なオブジェクトです。文字コンテナーに格納されたパス情報が必要な場合は、そのようなコンテナーに変換する必要があります。

于 2013-01-08T02:54:56.113 に答える