1
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int winnings[4] = {0,0,0,0};
int* p_winnings = winnings;

void CalculateGame(int* p_games);

int main()
{
    int games[6] = {12,13,14,23,24,34};
    int* p_games = games;
    int favorite_team,games_played,team1,team2,score1,score2,i;
    ifstream data("DATA11.txt");
    data >> favorite_team >> games_played;
    vector<int> standings(4);
    for (i = 0;i < 4; i++)
        standings[i] = 0;
    for (i = 0;i < games_played;i++)
    {
        data >> team1 >> team2 >> score1 >> score2;
        if (score1 > score2)
            standings[team1 - 1] += 3;
        if (score1 == score2)
            standings[team1-1]++,standings[team2-1]++;
        if (score1 < score2)
            standings[team2-1] += 3;
        for (i = 0; i < games.size();i++)
        {
            int temp1,temp2,temp;
            temp = games[i];
            temp2 = temp % 10;
            temp /= 10;
            if (temp2 == team2 && temp == team1)
                games.erase(i);
        }
    }
}

为什么当我请求数组游戏的成员(如 .size() 或 .erase() )时,我收到一条错误消息:“在非类类型 int [6] 的游戏中请求成员_ ”

4

1 回答 1

3

普通的旧 C 数组没有成员。所以它没有sizeor erase。如果您确实希望它有成员,C++11 提供了一个名为的类std::array<T,N>,可以通过简单地在您的情况下使用std::array<int, 6> games = { ... }. 但是请注意,std::array它没有erase成员函数,但它有一个size成员函数。

于 2013-07-21T22:23:55.993 回答