哈特曼光阑用以限制:请问vector<string>怎么在quickwatch下观察其内容?

来源:百度文库 编辑:高校问答 时间:2024/04/28 08:06:32
问题如下:
比如我有
char a[100]="God Bless Me!";
vector<string> str;
str.push_back(a);
cout << str[0];
这个时候我调试的时候在quickwatch中输入str[0]出现错误:
overloaded operator....
但是输出是正确的。这是为什么?
不仅仅是vector<string> 还有很多类似的情况list,map...
更不用说vector<vector<string> >了...

听别人说这个问题并不是普遍的 但是我的MSVC++的却存在这个问题for a long time.
感觉象是对STL支持不好造成的一样的

 
 
 
我觉得是其中一只 VC 虫作怪。 我不知道真正的原因,但我知道在 VC6 里若要观察 vector 的内容,
可以在 Watch 里输入这种格式的数据以显示该 vector 里的前面 上限 - 1 个元素:

    变量名._First ,上限

比如,若代码如下,输入 vs._First, 10 便能让 Watch 以显示数组的方式显示前面 10 个元素。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

void main( ) {
    vector<string> vs;
    vs.push_back( "first" );
    vs.push_back( "second" );
    vs.push_back( "third" );
}