Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template <typename T, int shift>
- class Array {
- Array<T, shift-1> left;
- Array<T, shift-1> right;
- public:
- static const int size = 1 << shift;
- T& at(int i) {
- if(i >= left.size)
- return right.at(i - left.size);
- else
- return left.at(i);
- }
- };
- template <typename T>
- class Array<T, 0> {
- T data;
- public:
- static const int size = 1;
- T& at(int i) {
- return data;
- }
- };
- Array<int, 5> data; // tablica o rozmiarze 2**5
- int main() {
- for(int i=0; i<10; i++) {
- data.at(i) = i;
- }
- std::cout << data.size << std::endl;
- for(int i=0; i<10; i++)
- std::cout << data.at(i) << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement