Iterators

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
	std::cout << *vec.begin();
    return 0;
}

Optionen: 1, Undefiniertes Verhalten, Error
Korrekt: 1

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
	std::cout << *vec.end();
    return 0;
}

Optionen: 5, undefiniertes Verhalten, Error
Korrekt: undefiniertes Verhalten

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
	std::cout << vec.at(5);
    return 0;
}

Optionen: 5, undefiniertes Verhalten, Error
Korrekt: Error

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
	std::cout << vec[5];
    return 0;
}

Optionen: 5, undefiniertes Verhalten, Error
Korrekt: undefiniertes Verhalten

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {9, 4, 3, 5, 1};
    
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it;
    }
 
    return 0;
}

Antwort: 94351

Was gibt das folgende Programm aus?

#include <iostream>
#include <set>
 
int main() {
    std::set<int> s = {9, 4, 3, 5, 1};
    
    for (auto it = s.begin(); it != s.end(); ++it) {
        std::cout << *it;
    }
 
    return 0;
}

Antwort: 13459

Was gibt das folgende Programm aus?

#include <iostream>
#include <vector>
 
void mul_by(std::vector<int>::iterator begin, 
            std::vector<int>::iterator end, int x){
  
  for(auto it = begin; it != end; ++it){
    (*it) *= x;
  }
  
}
 
 
int main() {
    std::vector<int> vec = {0, 1, 2, 3, 4};
    
    mul_by(vec.begin(), vec.end()-2, 2);
    
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it;
    }
 
    return 0;
}

Antwort: 02434

Was gibt das folgende Programm aus?

#include <iostream>
 
struct rational{
  int n;
  int d;
 
 
  operator double (){
    return n/d;
  }
  
};
 
int main() {
  
    rational a{1,2};
    std::cout << 5.0*a;
 
    return 0;
}

Optionen: 0, 2.5, 5.0, kompiliert nicht
Korrekt: 0