Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
#1

Можно ли переделать маcсив под вектор? - C++

22.09.2013, 10:46. Просмотров 936. Ответов 24
Метки нет (Все метки)

Можно ли переделать масив под вектор. Если можно то как подскажите плиз.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    setlocale(LC_ALL, "rus");
    for (int i = 0; i < 13; i++)
        for (int j = 0; j < 4; j++)
        {
            rank[i] = rand() % 12;
            rank[0] = "2";
            rank[1] = "3";
            rank[2] = "4";
            rank[3] = "5";
            rank[4] = "6";
            rank[5] = "7";
            rank[6] = "8";
            rank[7] = "9";
            rank[8] = "10";
            rank[9] = "Валет";
            rank[10] = "Дама";
            rank[11] = "Король";
            rank[12] = "Туз";
            suit[0] = 6;
            suit[1] = 3;
            suit[2] = 4;
            suit[3] = 5;
            cout << rank[i] << ' ' ;
            cout << suit[j] << ' '<<"\n\n";
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 10:46     Можно ли переделать маcсив под вектор?
Посмотрите здесь:

вектор string в масив указателей на char - C++
Доброго дня, комрады. Вот несколько дней как начал разбираться в С++ по 4-му вводному курсу липмана. наткнулся на задачку в общем-то...

Переделать код через вектор - C++
Нужно сделать код не через строки, а через вектор #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { ...

можно ли в вектор добавить вектор? - C++
не сложить, а добавить? например, даны такие векторы: std::vector&lt;glm::vec2&gt; myVector; и vector&lt;вот тут какой тип делать?&gt;...

Вектор vector<string> переделать в int - C++
Здравствуйте. Подскажите, а то что то совсем запутался Задача следующая создать вектор string наполнить его элементами 123. С этим я...

Можно ли в С++ сгенерить масив разерома в переменную типа int? - C++
Вопрос: можноли сделать чтонить вроде того: int i; i = 5; char str;//ошибкадо определенного момента мне не известно колличество...

Переделать под с++ - C++
есть программа, я так понял написана на с, а мне надо на с++ сам я пробовал, но дуб дубом.. желательно еще переделать: убрать ввод данных...

переделать под график - C++
это сделано под сетевую диаграмму

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
22.09.2013, 11:00     Можно ли переделать маcсив под вектор? #2
А что этот код должен делать, если не секрет?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
22.09.2013, 11:00     Можно ли переделать маcсив под вектор? #3
C++
1
2
    const char *                r[] = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "Валет", "Дама", "Король", "Туз" };
    std::vector <std::string>   rank( r, r + sizeof( r ) / sizeof( r[0] ) );
Остальное по-аналогии.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.09.2013, 11:10     Можно ли переделать маcсив под вектор? #4
mixon-21, если в том же стиле, то использовать std::vector<std::string> и push_back()
castaway, если компилятор поддерживает, то можно сразу через std::initializer_list
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
22.09.2013, 11:18     Можно ли переделать маcсив под вектор? #5
Tulosba, в таких постах я специально стараюсь не касаться стандарта С++11, т.к. у многих новичков с ним возникают проблемы.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.09.2013, 11:26     Можно ли переделать маcсив под вектор? #6
Цитата Сообщение от castaway Посмотреть сообщение
Tulosba, в таких постах я специально стараюсь не касаться стандарта С++11, т.к. у многих новичков с ним возникают проблемы.
Думал уточнить, в каких "таких". А потом присмотрелся к циклу ТС... OMG. Тут надо логику привести в порядок, прежде чем на вектор переходить
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
22.09.2013, 11:57  [ТС]     Можно ли переделать маcсив под вектор? #7
Цитата Сообщение от castaway Посмотреть сообщение
1
2
* * const char ** * * * * * * * r[] = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "Валет", "Дама", "Король", "Туз" };
* * std::vector <std::string> * rank( r, r + sizeof( r ) / sizeof( r[0] ) );
Остальное по-аналогии.

по аналогии неполучается . Вектор должен быть двухмерный чтобы выводило карту и масть. как его сделать двух мерным

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
mixon-21, если в том же стиле, то использовать std::vector<std::string> и push_back()
castaway, если компилятор поддерживает, то можно сразу через std::initializer_list

castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
22.09.2013, 12:24     Можно ли переделать маcсив под вектор? #8
Цитата Сообщение от mixon-21 Посмотреть сообщение
по аналогии неполучается
Дай нам знать, когда сочтешь нужным показать как ты пробовал.
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
22.09.2013, 12:25     Можно ли переделать маcсив под вектор? #9
Цитата Сообщение от mixon-21 Посмотреть сообщение
по аналогии неполучается . Вектор должен быть двухмерный чтобы выводило карту и масть. как его сделать двух мерным
В первом посте "хочу вектор" и только в 7-м "вектор должен быть двух мерным"
Стрельбой по бегущей мишени заниматься неинтересно (мало ли что всплывет в 15-й, 25 постах...)
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
22.09.2013, 12:45  [ТС]     Можно ли переделать маcсив под вектор? #10
Цитата Сообщение от zer0mail Посмотреть сообщение
В первом посте "хочу вектор" и только в 7-м "вектор должен быть двух мерным"
Стрельбой по бегущей мишени заниматься неинтересно (мало ли что всплывет в 15-й, 25 постах...)
в первом посте масив двумерный а вектор будет одномерным????
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
22.09.2013, 12:52     Можно ли переделать маcсив под вектор? #11
Цитата Сообщение от mixon-21 Посмотреть сообщение
в первом посте масив двумерный а вектор будет одномерным?
Где он двумерный?

Добавлено через 1 минуту
Цитата Сообщение от mixon-21 Посмотреть сообщение
rank[i] = rand() % 12;
здесь его элементу присваивается int
Цитата Сообщение от mixon-21 Посмотреть сообщение
rank[0] = "2";
здесь присваивается char*

Вообще какой-то странный массив не понятно чего.
Цикл вообще черт пойми зачем, покуда и куда
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
22.09.2013, 16:27     Можно ли переделать маcсив под вектор? #12
Объявить двумерный вектор не проблема
C++
1
std::vector<std::vector <std::string> > CardDeck;
Главная проблема в том, что ты хочешь получить в результате. Если ты хочешь, чтобы у тебя в двумерном векторе записывались и масть и название карты, то тебе нужно привести всё к одному типу. Либо массив будет строкового (string или char * например), либо целочисленного int. Если же хочешь, чтоб у тебя масть и цена карты были разные типы, то тебе нужна структура. Например:
C++
1
2
3
4
5
struct card
{
std::string rank;
int suit;
};
В этом случае будет достаточно одномерного вектора.
C++
1
std::vector<card> deck
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
22.09.2013, 18:41  [ТС]     Можно ли переделать маcсив под вектор? #13
тип у меня один что suit что rank = string

подскажите правильно создал вектор

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Card::Card()
{
    setlocale(LC_ALL, "rus");
    std::vector<card> card;
    for (int i = 0; i < 13; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            rank[0] = "2";
            rank[1] = "3";
            rank[2] = "4";
            rank[3] = "5";
            rank[4] = "6";
            rank[5] = "7";
            rank[6] = "8";
            rank[7] = "9";
            rank[8] = "10";
            rank[9] = "Валет";
            rank[10] = "Дама";
            rank[11] = "Король";
            rank[12] = "Туз";
            suit[0] = 6;
            suit[1] = 3;
            suit[2] = 4;
            suit[3] = 5;
 
            cout << rank[i]<<suit[j] << endl;
    }
}
}
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
22.09.2013, 23:24     Можно ли переделать маcсив под вектор? #14
mixon-21, честно говоря, не вижу, что rank и suit одного типа. rank присваиваются строки, а suit числа. В любом случае, вектор ты создал неправильно. В скобках <...> указывается тип данных, а после них имя переменной. vector - это не тип данных, как int, float или char. vector - это шаблон, для которого ты можешь указывать любой тип данных. Так вот ты обозначаешь и тип данных и имя переменной одним идентификатором. Скорей всего компилятор на это обругается. Правильно это будет сделать так. Объявляешь структуру
C++
1
2
3
4
5
struct CardStruc
{
  string rank;
  int suit;
};
Объявляешь vector
C++
1
vector<CardStruc> card;
Для того, чтобы добавить элемент в конец вектора используй метод push_back, если вставить куда-нибудь в середину - insert. Обращение к элементам вектора также как и в обычном массиве, т. е. по индексу в квадратных скобках. Вот пример добавления карты
C++
1
2
CardStruc temp={"туз", 5};
card.push_back(temp);
А вот так, например ты можешь узнать цену карты:
C++
1
card[0].rank;
Надеюсь стало понятней.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 23:33     Можно ли переделать маcсив под вектор?
Еще ссылки по теме:

Написать / переделать под C++ - C++
Всем привет, нуждаюсь в вашей помощи, написать программу с паскаля на c++ Условие:В одномерном массиве, состоящем из n вещественных...

Переделать под реккурсию - C++
Есть задача,поиск числа бинарным методом, в нее нужно добавить решение с помощью рекурсиипомогите пожалуйста! #include &lt;iostream&gt; ...

Переделать под указатели - C++
Помогите пожалуйста переделать задачу под указатели... :(вообще не получается... Заранее огромное спасибо.... int main() { int...

Переделать код под c++ - C++
Есть код Pascal, нужно его переделать под c++. Но поскольку в этом не особо разбираюсь прошу у вас помощи. Заранее благодарен. Спасибо за...

Переделать под указатели - C++
Задание В заданном предложении найти пару слов, из которых одно является обращением другого. Программа готова, но просят переделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
22.09.2013, 23:33  [ТС]     Можно ли переделать маcсив под вектор? #15
В принцыпе да но как мне создать целую колоду карт из 52 штук????
Yandex
Объявления
22.09.2013, 23:33     Можно ли переделать маcсив под вектор?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru