v_3c
main.cpp
Go to the documentation of this file.
1 // Vorlesung 18.Maerz 2020
2 // Dynamische C++-Vektoren
3 // Vektor als Funktionsargument
4 #include <cmath> // sqrt()
5 #include <iostream>
6 #include <vector> // vector
7 using namespace std;
8 
9 //------------------------------------------------------------------------------
10 // Drei Varianten Initialisierung eines C++-Vektors innerhalb einer Funktion
11 //------------------------------------------------------------------------------
17 vector<float> vec_init_1(int const n)
18 {
19  vector<float> tmp(n); // Vektorlaenge wird auf n gesetzt
20  for (int k = 0; k < tmp.size(); ++k) {
21  tmp.at(k) = sqrt(1.0 + k);
22  }
23  return tmp; // nicht vergessen!
24 }
25 
26 
32 void vec_init_2(int const n, vector<float> &v)
33 {
34  v.resize(n); // Vektorlaenge wird auf n gesetzt
35  for (int k = 0; k < v.size(); ++k) {
36  v.at(k) = sqrt(1.0 + k);
37  }
38 }
39 
40 
48 void vec_init_3(int const n, vector<float> &v)
49 {
50  v.clear(); // Vektorlaenge wird auf 0 gesetzt
51  for (size_t k = 0; k < n; ++k) {
52  v.push_back(sqrt(1.0 + k)); // neues Element angehaengen
53  }
54 }
55 
59 void print_vek(vector<float> const &v)
60 {
61  for (size_t k = 0; k < v.size(); ++k) {
62  cout << " " << v[k];
63  }
64  cout << endl;
65 }
66 
67 //------------------------------------------------------------------------------
68 
69 int main()
70 {
71  cout << "Hello world!" << endl;
72  int n; // variable Vektorlaenge
73  cout << "Anzahl der Elemente = ";
74  cin >> n;
75 
76  {
77  // Funktion 1 testen
78  vector<float> v = vec_init_1(n);
79  cout << v.front() << " " << v.at(n / 2) << " " << v.back() << endl << endl;
80  } // hier endet die Gueltigkeit von v
81 
82  {
83  // Funktion 2 testen
84  vector<float> v; // Vektor der Laenge 0
85  vec_init_2(n, v);
86  cout << v.front() << " " << v.at(n / 2) << " " << v.back() << endl << endl;
87  } // hier endet die Gueltigkeit von v
88 
89  {
90  // Funktion 2 testen
91  vector<float> v(20, -1.2345); // 20 Vektorelemente, jedes mit -1.2345 initialisiert
92  vec_init_3(n, v);
93  cout << v.front() << " " << v.at(n / 2) << " " << v.back() << endl << endl;
94 
95  print_vek(v);
96  } // hier endet die Gueltigkeit von v
97 
98 
99  return 0;
100 }
int main()
Definition: main.cpp:69
void vec_init_3(int const n, vector< float > &v)
Definition: main.cpp:48
vector< float > vec_init_1(int const n)
Definition: main.cpp:17
void vec_init_2(int const n, vector< float > &v)
Definition: main.cpp:32
void print_vek(vector< float > const &v)
Definition: main.cpp:59