![](/img/trans.png)
[英]boost::filesystem::path vs boost::filesystem::wpath
[英]using boost::algorithm in boost::filesystem::path
问题1:我想在boost::filesyetem::path
删除URI的“ file://
”部分,而不先转换为std::string
。 可以使用boost::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
除了应用于字符串外,还有什么用?
boost::filesystem::path
不是字符数组。 您不能遍历path
字符,也不能假定所包含的字符串采用任何特定的编码。 将path
存储为std::vector<SomeStringType>
绝对合法,其中向量的每个元素都是路径的元素。
简而言之, path
不是字符容器;它不是字符容器。 这是一个特殊的对象。 如果需要将路径信息存储在字符容器中,则需要将其转换为这样的容器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.