使用一种标准::string迭代要找到开始和结束的它的字符串
题
只是std::string迭代,是否有可能确定的开始和结束点的串?假设我没有进入串的对象,因此无法呼串。开始()和串。end(),而我所能做的就是递增或递减的迭代和试验的价值。
谢谢, Phil
解决方案
简短的回答是没有。长的答复是,因为迭代不应知道有关集装箱或范围,是循环,它们只是期望
- 能跳到下一个元素(公司或dec以下一个或上一页)
- 引用自己,以揭示一个参考价值,他们都指向
- 和过程比较自己与其他迭代最重要的是一种"结束"迭代的一种。
此外,某些类型的迭代可以做的不仅仅是上述的,但主要是他们都需要有执行上述一些或另一种形式。
其他提示
- 为了结束点的string:假设内部字符串null终止。然后通过间接引用的迭代要看看他们是否'\0',以确定下一位是终点。但是对于其他非空终止串,它不可能获得知道这样的信息。
- 开始点的string:没有办法做这样的事情。
默认的标准::string::迭代只是个随机的,双方向迭代,不知道任何关于容器。
但如果你在工作上的视觉C++的平台,也许你可以使用一些黑客的方式如下得到控制它的容器,但这是非常危险:
// it is the passed in string::iterator parameter.
if (it._Has_container()) {
string* strRef = (string*)it._Mycont;
}
不隶属于 StackOverflow