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

Векторы - C++

Восстановить пароль Регистрация
 
Nalale
 Аватар для Nalale
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 34
19.03.2013, 11:33     Векторы #1
Создаю вектор vector<vector<Point>> contours;
После чего мне нужно создать аналогичный простой массив Array, элемент которого был бы тоже содержал массив точек. Пожалуйста, подскажитекак это реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 11:33     Векторы
Посмотрите здесь:

C++ Векторы
C++ Векторы
векторы С++ C++
Векторы C++
C++ Векторы!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.03.2013, 11:38     Векторы #2
C++
1
std::vector<Point> ar[10];
Nalale
 Аватар для Nalale
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 34
19.03.2013, 11:45  [ТС]     Векторы #3
Цитата Сообщение от yuron_477 Посмотреть сообщение
C++
1
std::vector<Point> ar[10];
В таком случае он опять создаст вектор из 10 элементов.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.03.2013, 11:52     Векторы #4
Ну тогда наверное:
C++
1
Point ar[10][10];
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
19.03.2013, 15:46     Векторы #5
Цитата Сообщение от Nalale Посмотреть сообщение
C++
1
std::vector<Point> ar[10];
В таком случае он опять создаст вектор из 10 элементов.
С какого перепугу? ar - массив из 10 элементов, каждый из которых имеет тип std::vector<Point>.
Nalale
 Аватар для Nalale
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 34
19.03.2013, 16:34  [ТС]     Векторы #6
Цитата Сообщение от Tulosba Посмотреть сообщение
С какого перепугу? ar - массив из 10 элементов, каждый из которых имеет тип std::vector<Point>.
Хорошо. Тогда поправте меня если я ошибусь.
Например создаем такой массив, элементы которого имеют тип vector<int>, из 5 элеменов и попытаемся заполнить его какиминибудь значениями.

C++
1
2
3
vector<int> ar[5];
    for (int i = 0; i < 5; i++ ){
        ar[i] = i +5;}
Верная реализация или нет?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
19.03.2013, 16:48     Векторы #7
Цитата Сообщение от Nalale Посмотреть сообщение
Верная реализация или нет?
Нет. Этот код даже не скомпилируется. Вы пытаетесь присваивать целое число (int) вектору (std::vector). Вообще, мало хорошего в смешивании кода обычных массивов и стандартных контейнеров.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2013, 17:02     Векторы
Еще ссылки по теме:

Векторы! C++
Векторы C++
Векторы в с++ C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
19.03.2013, 17:02     Векторы #8
Цитата Сообщение от Nalale Посмотреть сообщение
Создаю вектор vector<vector<Point>> contours;
После чего мне нужно создать аналогичный простой массив Array, элемент которого был бы тоже содержал массив точек. Пожалуйста, подскажитекак это реализовать.
очень просто
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
#include <iostream>
using namespace std;
 
struct Point
{
    double x;
    double y;
};
 
int main()
{
    int i;
    vector <Point> vec;
    Point pt  = {0};
    for(i = 0; i < 15; i++)
    {
        pt.y  = i;
        vec.push_back(pt);
    }
    Point * array = &vec[0];
    for(i = 0; i < 15; i++)
        cout<<array[i].x<<" - "<<array[i].y<<endl;
    return 0;
}
причём пару дней назад на форуме проскакивал аналогичный вопрос
Проверка здесь
http://codepad.org/hoHMbl9G
Output:
0 - 0
0 - 1
0 - 2
0 - 3
0 - 4
0 - 5
0 - 6
0 - 7
0 - 8
0 - 9
0 - 10
0 - 11
0 - 12
0 - 13
0 - 14
Добавлено через 8 минут
Цитата Сообщение от Nalale Посмотреть сообщение
vector<vector<Point>>
- дляя двумерки будет так
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
31
32
33
34
35
36
#include <vector>
#include <iostream>
using namespace std;
 
struct Point
{
    double x;
    double y;
};
 
int main()
{
    int i;
    int j;
    vector < vector< Point > > vec;
    Point pt  = {0};
    vector <Point> data;
    for(i = 0; i < 3; i++)
    {
        data.resize(0);
        for(j = 0; j < 15; j++)
        {
                        pt.x  = i;
            pt.y  = j;
            data.push_back(pt);
        }
        vec.push_back(data);
    }
    Point ** array = new Point * [3];
    for(i = 0; i < 3; i++)
        array[i] = &vec[i][0];
    for(i = 0; i < 3; i++)
    for(j = 0; j < 15; j++)
        cout<<array[i][j].x<<" - "<<array[i][j].y<<endl;
    return 0;
}
http://codepad.org/WX65RKUq
0 - 0
0 - 1
0 - 2
0 - 3
0 - 4
0 - 5
0 - 6
0 - 7
0 - 8
0 - 9
0 - 10
0 - 11
0 - 12
0 - 13
0 - 14
1 - 0
1 - 1
1 - 2
1 - 3
1 - 4
1 - 5
1 - 6
1 - 7
1 - 8
1 - 9
1 - 10
1 - 11
1 - 12
1 - 13
1 - 14
2 - 0
2 - 1
2 - 2
2 - 3
2 - 4
2 - 5
2 - 6
2 - 7
2 - 8
2 - 9
2 - 10
2 - 11
2 - 12
2 - 13
2 - 14
Yandex
Объявления
19.03.2013, 17:02     Векторы
Ответ Создать тему
Опции темы

Текущее время: 17:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru