Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 18.06.2009, 14:43   #1
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Памагите новичку

-------разобрался
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер

Последний раз редактировалось Mr_F_, 18.06.2009 в 14:50.
(Offline)
 
Ответить с цитированием
Старый 20.06.2009, 03:18   #2
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Памагите новичку

буквально позавчера начал изучать язык)

собственно вопрос: как найти нужный мне объект класса? т.е. у меня есть один интегер, и токо в одном из объектов он такой же.

для начала бы хотелось узнать как там делать переборы наподобие блицевского for...each)

ну и бонусом был бы рад узнать, есть ли какие-нибудь более быстрые методы чем полный перебор.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 20.06.2009, 03:51   #3
jimon
 
Сообщений: n/a
Ответ: Памагите новичку

Mr_F_
создай список и заноси туда обьекты, более быстрые - сделать отсортированый масив и использовать двоичный поиск к примеру
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (20.06.2009)
Старый 27.06.2009, 22:43   #4
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Памагите новичку

Сообщение от Mr_F_ Посмотреть сообщение
буквально позавчера начал изучать язык)

собственно вопрос: как найти нужный мне объект класса? т.е. у меня есть один интегер, и токо в одном из объектов он такой же.

для начала бы хотелось узнать как там делать переборы наподобие блицевского for...each)

ну и бонусом был бы рад узнать, есть ли какие-нибудь более быстрые методы чем полный перебор.
Про for
int data[10];
for( int i=0; i < 10; i++ )
{
data[i]=i;
}

Можно хранить объекты в std::map

Например

struct Object
{
....
};

std:map<Object*,int> objects;

запись:
Object* myObject = new Object();
int integer = 5;
objects[integer] = myObject;

получение
Object* obj = objects[integer];

так-же для проверки существует ли объект по нужному индификатору можно с помощью функции objects.find(...),тоесть:

if(objects.find(integer) == objects.end())
{

не существует
}else{

существует
}

можно юзать std::vector для хранения

поиск легко делать:

std::vector<Object*>::iterator i = find(objects.begin(),objects.end(),object);
Ну это поиск не в этом смысле слова. Просто получаем возможность узнать если объект в векторе или нет и получаем его итератор после чего сможем с ним манипулирова удалить\переместить.

А вообще купи се книгу,Полный справочник по С++,автор Герберт Шилдт,очень хорошая книжка.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (27.06.2009)
Старый 29.06.2009, 12:08   #5
Chakki
Оператор ЭВМ
 
Аватар для Chakki
 
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Памагите новичку

Попытался отсортировать матрицу
Вот код самой сортировки:
// Сортировка матрицы
// Chakki.F

#include "stdafx.h"
#include "conio.h"
#include "iostream"
#define n 3
#define m 3

using namespace std;


int main()
{
// Обьявление переменных и ввод массива ---------------------
	cout << "Enter 9 numbers: \n" << '\n';
	int arr[n][m],i,j,a,k;
	int temp;
	int size;

	size = n*m;
	a = 0;

	for(i=0;i<n;i++)
	{   for(j=0;j<m;j++)
	{   cin >> arr[i][j];
	} }
// Вывод исходного массива -----------------------------------
	cout << "Your array:\n" << '\n';

	for(i=0;i<n;i++)
	{   cout << '\n';
		for(j=0;j<m;j++)
	{   cout << arr[i][j] << ' ';
	} }
	cout << '\n' << '\n';
// Сортировка -------------------------------------------------
    for(k=0;k<size;k++)
{	for(i=1;i<size;i++)
	{  for(j=size-1;j>=size;j--)
	{  if(arr[j-1][a] > arr[j][a])
	{  temp = arr[j-1][a];
	   arr[j-1][a] = arr[j][a];
	   arr[j][a] = temp;
	}  } }
    a++;
}

// Вывод -------------------------------------------------------
	cout << "New array:\n" << '\n';
	for(i=0;i<n;i++)
	{   cout << '\n';
	{   for(j=0;j<m;j++)
	{   
		cout << arr[i][j] << ' ';
	}
	}  }

// -------------------------------------------------------------------
	printf("Press any key to continue...\n");
    getch();

	return 0;
// --------------------------------------------------------------------
}
сам пытался разобратся, и помоему компилятор вообще игнорирует сортировку, либо это я вообще не правильно написал
укажите на ошибку пожалуйста =)
__________________


Gameplay First

Последний раз редактировалось Chakki, 29.06.2009 в 12:24.
(Offline)
 
Ответить с цитированием
Старый 29.06.2009, 12:39   #6
jimon
 
Сообщений: n/a
Ответ: Памагите новичку

вот какой у тебя код
for(k[=0;k<size;k++)
{
	for(i=1;i<size;i++)
	{
		for(j=size-1;j>=size;j--)
		{
			if(arr[j-1][a] > arr[j][a])
			{
				temp = arr[j-1][a];
	   			arr[j-1][a] = arr[j][a];
	   			arr[j][a] = temp;
			}
		}
	}
    	a++;
}
как видишь у тебя нету использования переменных k и i
написанный таким образом код перестановки сортирует только внутри строки, те будет только отсортирована каждая строка, между строками сортировки не будет

так какая тебе сортировка надо ? для матрицы очень много способов есть её отсортировать
 
Ответить с цитированием
Старый 29.06.2009, 12:53   #7
Chakki
Оператор ЭВМ
 
Аватар для Chakki
 
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Памагите новичку

метод неважен)))
есть задача: отсортировать матрицу n*m =)
у мен с сортировками очень плохо, уже пару дней пытался догнать)))

обнаружил косячек, ну теперь начал чтото делать, но что непонятно оО

for(k[=0;k<size;k++)
{
	for(i=1;i<size;i++)
	{
		for(j=size-1;j>=i;j--)
		{
			if(arr[j-1][a] > arr[j][a])
			{
				temp = arr[j-1][a];
	   			arr[j-1][a] = arr[j][a];
	   			arr[j][a] = temp;
			}
		}
	}
    	a++;
}
k - использовал как счетчик, но все равно все не то
голова уж пухнет, практика стоит, а скоро еще и защищать :D
__________________


Gameplay First
(Offline)
 
Ответить с цитированием
Старый 29.06.2009, 14:32   #8
jimon
 
Сообщений: n/a
Ответ: Памагите новичку

вот такой код сортировки должен работать

for(int i=0;i<size;i++)
{
	for(int j=0;j<size-1;j++)
	{
		for(int k=j+1;k<size;k++)
		{
			if(arr[i][j-1] > arr[i][j])
			{
				int temp = arr[i][j];
				arr[i][j] = arr[i][j-1];
				arr[i][j-1] = temp;
			}
		}
	}
}
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Chakki (29.06.2009)
Старый 29.06.2009, 15:32   #9
Chakki
Оператор ЭВМ
 
Аватар для Chakki
 
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Памагите новичку

Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted.
компилятор весь день шалит, сейчас выдал это.
Первый раз скомпилировал норм, выдал в отсортированном массиве вообще непонятные числа оО
второй раз ниче не менял откомпилировал, запустил, и в конце это выдал
__________________


Gameplay First
(Offline)
 
Ответить с цитированием
Старый 29.06.2009, 16:38   #10
jimon
 
Сообщений: n/a
Ответ: Памагите новичку

ух, недоглядел вот рабочий код

#include <iostream>

#define N 3
#define M 3

int main()
{
	int arr[N][M];

	for(int i=0;i<N;i++)
		for(int j=0;j<M;j++)
			std::cin >> arr[i][j];

	for(int i=0;i<N;i++)
		for(int j=0;j<M-1;j++)
			for(int k=M-1;k>j;k--)
				if(arr[i][k-1] > arr[i][k])
				{
					int temp = arr[i][k];
					arr[i][k] = arr[i][k-1];
					arr[i][k-1] = temp;
				}

	for(int i=0;i<N;i++)
	{
		for(int j=0;j<M;j++)
			std::cout << arr[i][j] << " ";
		std::cout << std::endl;
	}

	return 0;
}
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Chakki (29.06.2009)
Старый 29.06.2009, 16:53   #11
Chakki
Оператор ЭВМ
 
Аватар для Chakki
 
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Памагите новичку

Благодарю =)
__________________


Gameplay First
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 12:16   #12
Chakki
Оператор ЭВМ
 
Аватар для Chakki
 
Регистрация: 09.12.2008
Сообщений: 42
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Памагите новичку

задали задачу создать список из n элементов и там далее вычисления, это пока не важно)
и вот вопрос, зделать его массивом
или использовать библиотеку <list>
и создавать на самом деле список list<int> бла бла бла и так далее?)
__________________


Gameplay First
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 12:41   #13
jimon
 
Сообщений: n/a
Ответ: Памагите новичку

Chakki
тебе же написали что список, значит список
 
Ответить с цитированием
Старый 01.07.2009, 14:45   #14
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Памагите новичку

задали задачу создать список из n элементов и там далее вычисления, это пока не важно)
и вот вопрос, зделать его массивом
или использовать библиотеку <list>
и создавать на самом деле список list<int> бла бла бла и так далее?)
ну смотря кто и как задал !!
ели ты учишся там где-тов школе или универе, то такие задания дают для того что бы студент разобрался в самом принципе работы связаных списков, нада вручную добавлять, изменять, удалять !!
можно заюзать контейнер ЛИСТ, там все ети алгоритмы уже есть !! тебе остается их только применить к своему контейнеру !! работать все будут на ура !! но принципе этой работы тоже знать нада !!
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 15:01   #15
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Памагите новичку

ВИдимо у тебя !! это признак конца строки...
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я новичок! alcosholik Blitz3D 123 02.08.2014 22:55
Помогите новичку срен27 JAVA Micro Edition 7 18.11.2013 19:49
Пошогите новичку Sashka007 C++ 30 20.01.2009 12:39
помогите новичку с b3d falcon Blitz3D 60 09.09.2008 16:33
Re: Я новичок! evel Болтовня 60 30.09.2007 11:23


Часовой пояс GMT +4, время: 18:06.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com