Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iterator>
- #include <vector>
- using namespace std;
- //template<class T>
- class PowIterator;
- //template <class T>
- class Number;
- //template <class T>
- class NumSeq {
- private:
- vector<int> sequence;
- public:
- PowIterator begin(); //итератор, который указывает на первый элемент контейнера
- PowIterator end(); //итератор, который указывает на следующую позицию после последнего элемента
- int &operator[](int i); //Перегрузка операции "[]"
- NumSeq();
- template<typename _InputIterator,
- typename = std::_RequireInputIter<_InputIterator>>
- NumSeq(_InputIterator first, _InputIterator last): sequence(first, last) {}
- //template<class T>
- PowIterator NumSeq::begin() {
- return PowIterator(this);
- }
- //template<class T>
- PowIterator NumSeq::end() {
- return PowIterator(this, sequence.size());
- }
- //Перегрузка операции "[]"
- int &operator[](int i) {
- return sequence[i];
- }
- bool isEnd(vector<int> seq) {
- for (count; i < seq.size(); i++) {
- if (isPowerOfTwo()) {
- return true;
- } else return false;
- }
- }
- vector<int> getSeq() {
- return sequence;
- }
- //Проверка является ли число v степенью двойки
- bool isPowerOfTwo(int v) {
- return v && !(v & (v - 1));
- }
- };
- class PowIterator {
- private:
- NumSeq sequence;
- int count;
- public:
- PowIterator();
- };
- PowIterator :: PowIterator() {
- for (int i = 0; i < sequence.size(); i++) {
- if (isPowerOfTwo(sequence[i]) == true) {
- count = 0;
- break;
- }
- }
- }
- bool isEnd(vector<int> seq) {
- for (int i : seq) {
- return isPowerOfTwo(i);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement