|
vector_demo_C++.cpp
| |
1 #include <iostream> // cin cout
2 #include <iomanip> // setw setprecision
3 #include <fstream> // szöveges fájlok kezelése
4 #include <vector> // vektor (vector) adattĂpushoz (count)
5 #include <algorithm> // sort, max_element, min_element
6 #include <numeric> // accumulate
7 #include <ctime> // random számokhoz
8 #include <windows.h> // color a szövegekiĂrásokhoz
9
10 using namespace std; // standard i/o eszközökre mennek pl. a cin és cout parancsok
11
12 void Color(int color)
13 {
14 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
15 }
16
17 void vector_constructor(vector<int>& v, int db)
18 {
19 srand(time(NULL)); // véletlenszám-generátor inicializálása
20 for(auto i=0; i<db; i++)
21 {
22 v.push_back(rand()%100+1); // 1-100 közötti véletlenszám megy a vektorba
23 }
24 }
25
26 void vector_print(vector<int> v, string filename, string label)
27 {
28 ofstream fki;
29 fki.open(filename);
30 cout << label;
31 for(int elem:v) // vektor "bejárása" elemenként
32 {
33 cout << elem << " ";
34 fki << elem << " ";
35 }
36 cout << endl;
37 fki.close();
38 }
39
40 void vector_sort(vector<int>& v, string desc)
41 {
42 if(desc=="desc")
43 sort(v.rbegin(), v.rend());
44 // sort(v.begin(), v.end(), greater<int>());
45 else
46 sort(v.begin(), v.end());
47 }
48
49 unsigned long int vector_meret(vector<int> v)
50 {
51 return v.size();
52 }
53
54 void vector_ujelem(vector<int>& v, int hely, int ertek)
55 {
56 v.insert(v.begin()+hely, ertek);
57 }
58
59 float vector_atlag(vector<int> v)
60 {
61 return (float)accumulate(v.begin(), v.end(), 0) / (float)v.size();
62 }
63
64 int main()
65 {
66 setlocale(LC_ALL, "hun");
67 vector<int> vec;
68 int uj, helye;
69
70 vector_constructor(vec, 10);
71 Color(15); // fehér
72 cout << "Vektor mérete: " << vector_meret(vec) << endl;
73 Color(10); // zöld
74 vector_print(vec, "vektor.txt", "Vektor elemei......: ");
75 // Új elem beszúrása a vektorba
76 cout << "Új elem értéke: ";
77 cin >> uj;
78 cout << "Ăšj elem helye : ";
79 cin >> helye;
80 vector_ujelem(vec, helye-1, uj);
81
82 Color(15); // fehér
83 cout << "Vektor mérete: " << vector_meret(vec) << endl;
84 Color(10); // zöld
85 vector_print(vec, "vektor.txt", "Vektor elemei......: ");
86 Color(70); // piros-sárga
87 cout << "Vektor legnagyobb eleme : " << setw(6) << *max_element(vec.begin(), vec.end()) << " " << endl;
88 Color(19); // kék-szürke
89 cout << "Vektor legkisebb eleme : " << setw(6) << *min_element(vec.begin(), vec.end()) << " " << endl;
90 Color(70); // piros-sárga
91 cout << "Vektor elemeinek összege : " << setw(6) << accumulate(vec.begin(), vec.end(),0) << " " << endl;
92 Color(19); // kék-szürke
93 cout << "Vektor elemeinek átlaga : " << setprecision(5) << vector_atlag(vec) << " " << endl;
94 Color(10); // zöld
95 vector_sort(vec, "desc");
96 vector_print(vec, "sorted_vector.txt", "Csökkenő sorrendben: ");
97
98 vector_sort(vec, "asc");
99 vector_print(vec, "sorted_vector.txt", "Emelkedő sorrendben: ");
100 Color(15); // fehér
101
102 // Adott indexű elem lekérdezése
103 cout << "Melyik sorszámú elemre kiváncsi? ";
104 cin >> helye;
105 cout << helye << ". elem (indexe: " << helye-1 << ")" << " értéke: ";
106 Color(70); // piros-sárga
107 cout << setw(4) << vec[helye-1] << " " << endl;
108
109 Color(15); // fehér
110
111 return 0;
112 }