vector<string> MyStrings;
vector<string>::iterator ItStr;

我正在使用c_str()将指针返回到字符串。

为什么需要用括号取消引用?

无法编译:*ItStr.c_str();


在迭代器周围使用括号进行编译/工作:(*ItStr).c_str();
如果您能以正确的方向指我(无双关语),我将不胜感激。谢谢!

最佳答案

.的优先级高于一元*
*ItStr.c_str()就像您说过*(ItStr.c_str())一样。

当然,您可以只使用ItStr->c_str(),因为(*x).y等同于x->y(至少对于指针和迭代器;您当然可以为自己的类型重载运算符,以使它们不一致,但是您会发疯的这样做)。

08-26 03:51