Konuyu görüntüle
IUCODERS FORUM > Programlama > C / C++ > odev yardim serileri 4: vectors aduket !
Yazar
neurorebel


avatar

Kayıt: 15.08.2007
30.04.2008-00:20 #43723
//
// biraz daha genis bir ornek
//
#include <iostream>
#include <utility>	// pair konteyner sinifi icin
#include <vector>
#include <string>
#include <iomanip>	// setw(), left() ve right() manipulatorleri icin
						// basit anlamda manipulatorler veriyi yazarken/okurken formatlama yapmamizi saglar
						// setw(int) manipulatorunun etkisini programi calistirdiginizde goreceksiniz
						// tablo tarzi guzel bir goruntu olusacak (diye umuyoruz :) )
						// left ve right veriyi sola ya da saga dayali gostermek icin kullanilir
						// varsayilan right manipulatorudur

using namespace std;

// pair = cift
typedef pair<string, int> ders_not_t; // string ve int cifti (string ders adini, int notu temsil edecek)
// pair<string, int>::first ---> string
// pair<string, int>::second ---> int

int main()
{
	// programda herhangi bir hata kontrolu yapilmamaktadir
	// sadece vector ve pair siniflarinin pratik kullanimini
	// gostermek amaciyla yazilmistir.

	char ch;
	char buffer[100];
	vector<ders_not_t> notlarim;
	ders_not_t tmp;
	do
	{
		cout << "Ders adi: ";
		cin.getline(buffer, 100);
		tmp.first = buffer; // STL string sinifi asiri yuklenmis bir = operatoru sunar
							// ve hayat daha cekilir bir hale gelir...
		cout << "
Not: ";
		cin >> tmp.second;

		notlarim.push_back(tmp); // girilen veriyi notlara ekliyoruz

		cout << "
Cikmak icin x, devam etmek icin d ENTER..." << endl;
		cin >> ch;
		cin.ignore();	// son '
' karakteri ignore ediliyor (ortalik karismasin diye)
	} while(ch != 'x');

	cout << "Buyrun: 

";
	vector<ders_not_t>::iterator iter;
	// iterator nesneleri vectoru kurdugunuz veri tipindeki bir pointeri tasir
	// ve -> operatoru asiri yuklenmis olarak emrimizdedir.
	// dolayisiyla
	// iter = notlarim.begin(); demek
	// iter, notlarim vectorundeki ilk ders_not_t ( yani pair<string, int> )nesnesine
	// isaret ediyor demektir.
	// ve
	// iter->first ve iter->second seklinde bu verilere erisebiliriz
	// bakin nasilda erisiyoruz :)
	cout << setw(15) << left << "Ders " << setw(3) << right << "Not " 
		"
-------------------" << endl;
	for (iter = notlarim.begin(); iter != notlarim.end(); ++iter)
		cout << setw(15) << left << iter->first << setw(3) << right << iter->second << "
";

	cout << endl; // flush'em all!

	return 0;
}

// do not reinvent the wheel !! (but please learn how it works)


bu son örnek odevle alakalı olarak size güzel fikirler verecektir ;)





Do weird and difficult things.

Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb