Ste*_*eve 13 c++ immediate-window stdvector visual-studio
所以,我有一个向量
std::vector<std::string> lines.
Run Code Online (Sandbox Code Playgroud)
我填写这个向量,可以像访问它一样
std::string temp = lines[0];
Run Code Online (Sandbox Code Playgroud)
但是,在即时窗口中,两者都有
lines[0] - error:overloaded operator not found
Run Code Online (Sandbox Code Playgroud)
和
lines.at(0) - error:symbol is ambiguous
Run Code Online (Sandbox Code Playgroud)
根本不工作.使用c ++的即时窗口有一个技巧.我主要是来自C#背景,一切都很好(我在立即窗口中有智能感知).我并不认为C++会很棒,但我认为它可以用于除了int之外的东西.谁能告诉我我做错了什么?谢谢.
编辑:我应该清楚,在即时窗口中没有任何实际工作,这只是一个简化的例子
编辑:我在调试模式
小智 15
立即和监视窗口不支持重载运算符.在那里以一种合理的方式打印标准容器有一些支持(参见,例如,http://www.virtualdub.org/blog/pivot/entry.php?id = 120),但这不是扩展到能够使用operator[]它们.
希望这将在后来的调试器版本中得到改进,但是现在,要查看向量的第i个元素,请尝试lines._Myfirst[i].
(_Myfirst在VC++附带的标准库中,碰巧是std::vector指向序列的第一个元素的成员变量.所以这只是检查一个向量,好像它是任何其他对象.为了解决这个问题,我不得不看看标题...不是很方便,但希望这会对你有所帮助.你可以用其他容器做类似的事情,但是你必须查看标题以找出方法.)
(顺便说一下,如果你一直在使用C#,那么C++调试器通常可能看起来不那么光滑,这只是其中的一个例子.我得到的印象是,有更多的工作投入到CLR方面.)
| 归档时间: |
|
| 查看次数: |
4585 次 |
| 最近记录: |