Связывать одну переменную с другой? - PullRequest
0 голосов
/ 04 февраля 2012

Я чувствую, что есть очень простой ответ на это, но я просто не могу понять это.По сути, я хочу, чтобы у меня был один массив, например:

char * color[] =
{
"Red",
"Green"
};

Атрибут другого, например:

char * flavor[] =
{
"Strawberry",
"Apple"
};

У меня уже есть «цветной» вывод текстафайл в случайном порядке, например так:

Green
Green
Red
Green
Red

Но я хочу, чтобы программа могла различать эти выходные данные и создавать собственный параллельный вывод, но с «ароматом»:

Apple
Apple
Strawberry
Apple
Strawberry

Очевидно, что вывод «flavor» как случайного также не сработает, так как я скажу программе, в каком порядке выпадает первый массив, и скажу, чтобы он делал то же самое с другим?Это сводит меня с ума!

Ответы [ 3 ]

2 голосов
/ 04 февраля 2012

Используйте std::map, который является своего рода ассоциативным массивом.

#include <string>
#include <map>
#include <iostream>

int main (int ac, char **av)
{
  // Set up our map
  std::map<std::string, std::string> color2flavor;
  color2flavor["Red"] = "Strawberry";
  color2flavor["Green"] = "Apple";

  // Read the input, write the mapped output
  std::string quark;
  while(std::cin >> quark)
    std::cout << color2flavor[quark] << "\n";
}
1 голос
/ 04 февраля 2012

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

0 голосов
/ 04 февраля 2012

Вы можете определить целочисленный массив:

int Random[5];

затем поместите случайное число 0 или 1 в каждую часть этого массива:

for (int i=0;i<5;i++) Random[i]=rand()%2;

тогда вы можете написать color [i] и flavour [i] для вывода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...