Вопрос по С++

setty

Граф
Ответ: Вопрос по С++

у меня следующий вопрос
речь идет о двумерном динамическом массиве
создается он след образом
Код:
using namespace std;
typedef std::vector<int> row;
vector<row> matrix;

matrix.clear();
for(int i=0; i<my; i++)matrix.push_back(row(mx));
затем передается в другую функцию которая ничего не знает о том что это за массив, она лишь знает что он двухмерный (это общее предположение верное во всей программе). Вопрос в том как эта функция может узнать о размерности переданного ей массива. Говорят вектор содержит в себе информацию о кол-ве эллементов но я так и не смог её получить никак по другому как следующим способом который мне кажется далек от предпочитаемого:
Код:
	vector<row>::iterator rows = matrix.begin();
	int x = (int)(sizeof(rows) / sizeof(int));
	row::iterator cols = (*rows).begin();
	int y = (int)(sizeof(cols) / sizeof(int));
есть ли другой способ?
 

quant

yeah
Відповідь: Вопрос по С++

а зачем тайпдеф ? а размер возвращает метод size()
Код:
vector<vector<int> > matrix;
matrix.assign (10, vector<int> (5, int()));
потом в функции
Код:
void f (vector<vector<int> >& in) {
   printf ("%d %d\n", in.size(), in.size()?in.front().size():0);
}
в векторе много полезных методов, можно почитать
 

setty

Граф
Ответ: Вопрос по С++

thnx!

можете ли дать теперь немного пояснений по поводу строки

in.size()?in.front().size():0

в часности использование операторов ? и : насколько я понимаю определенных для вектора...
 

quant

yeah
Відповідь: Вопрос по С++

хех нет это обычное разветвление ((условие)?если правда:если ложь)
in.size()?in.front().size():0 - метод .front() это взятие первого элемента вектора а если in.size() нуль то in пустой, тоесть попытка взятия первого элемента в пустом векторе вызовет ошибку выполнения
поэтому я делаю проверку - если размер вектора in нуль то размер внутренних массивов тоже ставлю нуль, а если там что-то есть, то выписывается размер вектора in.front()
 

dreamer

Member
Ответ: Вопрос по С++

thnx!

можете ли дать теперь немного пояснений по поводу строки

in.size()?in.front().size():0

в часности использование операторов ? и : насколько я понимаю определенных для вектора...
Оператор ?: не переопределяется в С++
 

setty

Граф
Ответ: Вопрос по С++

magnet:?xt=urn:tree:tiger:UI3K63CYOENUCATYMMSMOO4ZUG66YXPYERKT66I&xl=5685015&dn=BCPP.rar
локал, бразерс, аниме

P/s поиск...
 

PAIN

АнимешнеГ
Ответ: Вопрос по С++

На чем писать программу?
По С++
 

PAIN

АнимешнеГ
Ответ: Вопрос по С++

Все не нужно, пишу на Borland С++
 
Ответ: Вопрос по С++

Помогите пожалуйста!!!!!!!!!!!!!
люди, гляньте, на листинг...
все пересмотрел, а все равно ошибки находит!!!!
не пойму в чем причина...
я б и сам рад найти ошибки, но пока еще новичок в этом деле...
 
Останнє редагування:
Зверху