只是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;
  }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top