Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2009, 17:29   #1
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию Двумерный вектор?

Ну про обычные вектора всё хорошо расписано.
vector<int> path.

А вот как замутить двухмерный вектор?

Что-бы можно было обращаться и к основному вектору, добавляя, либо удаляя произвольные ряды. Так и к векторам, составляющим его элементы.

Как это реализовать? И как обращаться к его составляющим?
jojahti вне форума Ответить с цитированием
Старый 13.09.2009, 17:41   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну, видимо, как-то так:
Код:
#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector< vector<int> > v1;
vector<int> v2,v3;
int i,j;
for(i=0; i<3; i++)
 v2.push_back(i+1);

v1.push_back(v2);
v1.push_back(v2);
v1.push_back(v2);

for(i=0; i<3; i++)
 {
  v3 = v1.back();
  for(j=0; j<3; j++)
   {
    cout<<v3.back()<<endl;
    v3.pop_back();
   }
  v3.pop_back();
 }
 
cin.get(); 
return 0; 
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.09.2009, 17:48   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

К составляющим ещё можно через итераторы обращаться:
Код:
#include <vector>
#include <iostream>
#include <string>

int main()
{
	typedef std::vector<std::vector<std::string>> StrMat;
	typedef std::vector<std::string> StrVec;
	StrMat Matrix;
	StrVec Vector;

	Vector.push_back("One");
	Vector.push_back("Two");
	Vector.push_back("Three");
	Matrix.push_back(Vector);
	Vector.clear();
	Vector.push_back("Four");
	Vector.push_back("Five");
	Vector.push_back("Six");
	Matrix.push_back(Vector);

	for(StrMat::iterator MatIter = Matrix.begin(); MatIter != Matrix.end(); MatIter++) {
		for(StrVec::iterator VecIter = MatIter->begin(); VecIter != MatIter->end(); VecIter++)
			std::cout << *VecIter << std::endl;
		std::cout << std::endl;
	}

	return 0;
}
netrino вне форума Ответить с цитированием
Старый 14.09.2009, 19:15   #4
jojahti
Подтвердите свой е-майл
 
Регистрация: 27.07.2009
Сообщений: 437
По умолчанию

Крута. Спасибо. )
jojahti вне форума Ответить с цитированием
Старый 14.09.2012, 15:00   #5
eleonorr
Новичок
Джуниор
 
Регистрация: 14.09.2012
Сообщений: 1
По умолчанию

Почитайте это обсуждение. Здесь примерный ответ на Ваш вопрос: как создать двухмерный вектор?
eleonorr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить логический вектор katya36 Помощь студентам 2 14.03.2009 13:32
Вектор? Slavik Microsoft Office Excel 0 23.02.2009 10:30
N-мерный вектор xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 4 16.04.2008 08:18