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
(至少对于指针和迭代器;您当然可以为自己的类型重载运算符,以使它们不一致,但是您会发疯的这样做)。