Несколько входов и выходов в C ++ - PullRequest
1 голос
/ 12 февраля 2020

У меня есть код, написанный на C ++ 17, который принимает значения x и y в качестве входных данных и дает некоторое значение в качестве выходных данных. Я хочу изменить его так, чтобы он принимал как можно больше входных данных (значений x и y) и давал выходные данные. Какие изменения необходимо было сделать в коде

, что происходит в коде: с некоторыми координатами x и y он находит номер координаты. enter image description here

int main(void) {
    const std::vector<Tile> tiles{ Tile(0),Tile(1),Tile(2),Tile(3) };

    // Test values
      const double  x{ 3700 };  // want to  add multiple entries here
      const double  y{ 11261 };  // want to  add multiple entries here

    // Check cell number
    for (const Tile& tile : tiles) {
        if (const auto [isInTile, cellNumber] = tile.getCellNumber(x, y); isInTile) {
            std::cout << "\nCellnumber: " << cellNumber << "\n:)\n\n\n\n\n\n";

        }
    }


    return 0;
}

Я пробовал много изменений, но всегда заканчиваюсь какой-то ошибкой, также я новичок в c ++, мой основной язык - python.

1 Ответ

1 голос
/ 12 февраля 2020

Если вам нужно несколько входных значений, поместите x, y в вектор, как вы делали с плитками:

    // Test values
    const std::vector<std::pair<double, double>> test_values = {
        { 3700, 11261 },
        { 2500, 10000 },
        { 1000, 5000 }
    };

    // Check cell number
    for (const Tile& tile : tiles) {
        for (const auto [x,y] : test_values) {
            if (const auto [isInTile, cellNumber] = tile.getCellNumber(x, y); isInTile) {
                std::cout << "\nCellnumber: " << cellNumber << "\n:)\n\n\n\n\n\n";
            }
        }
    }
...