为什么我不能使用cout在C ++中打印字符串值数组?

时间:2014-04-10 13:27:27

标签: c++ arrays cout

这是我正在写的一个非常简单的程序的代码片段。我对C ++很新,但有Java背景,所以我可能对打印值如何工作有先入之见。我的问题是当我这样做时:

cout << "Please enter the weight for edge " << verticies[i] << endl;

我收到一条错误消息,指出操作数与&lt;&lt;的指定运算符不匹配。基本上它是说我不能做cout&lt;&lt; verticies [i]中。

为什么会这样?

以下是代码:

#include "stdafx.h"
#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    string verticies[6] = { "AB", "AC", "AD", "BC", "BD", "CD" };
    int edges[6];

    for (int i = 0; i < 6; i++)
    {
        cout << "Please enter the weight for edge " << verticies[i] << endl;
    }

    system("PAUSE");

    return 0;
}

2 个答案:

答案 0 :(得分:10)

尝试包含<string>,应该足够了

答案 1 :(得分:3)

您必须包含标题<string>,其中包含类std::basic_string的定义,包括std::string

这是定义operator <<的标题。

还要考虑使用数组的类std :: map insted。例如

std::map<std::string, int> verticies = 
{ 
   { "AB", 0 }, { "AC", 0 }, { "AD", 0 }, { "BC", 0 }, { "BD", 0 }, { "CD", 0 } 
};

如果代码不编译,则在初始化列表中显式指定std :: pair。例如

{ std::pair<std::string, int>( "AB", 0 ), std::pair<std::string, int>( "AC", 0 ), ...}