Форум программистов, компьютерный форум CyberForum.ru

Собственная реализация стека. Критика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посоветуйте компилятор для C++ http://www.cyberforum.ru/cpp-beginners/thread773926.html
Пользуюсь VS 2008 express,но с ним возникли проблемы при использовании чтении данных из файлов,может руки кривые и не знаю,как кодировку настроить правильно,если объясните,то буду благодарен,ну а так качаю eclipse,может с ним такой беды не будет,ну или посоветуйте чего ещё,у меня XP
C++ Ввод/вывод баг или нет? #include <iostream> #include <iterator> #include <string> using namespace std; ostream_iterator<string> oo(cout); istream_iterator<string> ii(cin); int main() { http://www.cyberforum.ru/cpp-beginners/thread773898.html
Кривое считывание с файла C++
#include <iostream> #include <fstream> #include <string> #include <locale.h> using namespace std; #include <windows.h> int main() { setlocale(LC_ALL,"Russian"); string str="Vremya-velikiy ychitel,no,yvi, ono ybivaet svoih ychenikov. Berlioz";
C++ Коменты
Может кто написать коменты на каждую строку? #include <iostream> #include <vector> using namespace std; void printy (int a,int b) { for (int i=0; i<b+1; i++) { cout << a << ' ';
C++ Подсчёт количества чисел в строке http://www.cyberforum.ru/cpp-beginners/thread773848.html
Подсчитать количество чисел в первой строке из текстового файла: код написала, всё хорошо считывается из текстового файла и выводится на экран, но увы с подсчётом чисел пока не получается реализовать алгоритм:( В текстовом файле находятся например: 1-я строка : 0,1 0,2 0,3 0,4 2-я строка: 0,5 0,6 0,7 0,8 0,9 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv){ FILE...
C++ code::blocks не находит .h файл Написал в code::blocks пример из книги Х.Дэйтел "как программировать на C++" при компиляции выдает: Fatal error: time1.h: No such file or dirrectory очевидно, что компилятор не знает пути к .h файлу. Где его прописать или что сделать чтобы программа скомпилировалась? Имеется вот что (все файлы в одном каталоге): // TIME1.H подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт CЭксперт С++
6647 / 3838 / 505
Регистрация: 29.11.2010
Сообщений: 10,154
29.01.2013, 13:43  [ТС]     Собственная реализация стека. Критика
С оператором присвоений то понятно, но он в своей реализации упирается на конструктор копий.
C++
1
2
3
4
5
6
7
template <class T>
Stack<T>& Stack<T>::operator= (const Stack &s)
{
    if(this != &s)
        Stack(s).swap(*this);
    return *this;
}
Цитата Сообщение от Jupiter Посмотреть сообщение
для конструктора копирования всего-то проитерировать все элементы
А как проитерировать, зная лишь верхушку и количество элементов?
Я такой вот только бред могу написать:
C++
1
2
3
4
5
6
template <class T>
Stack<T>::Stack(const Stack &s) : Stack()
{
    for (int c = static_cast<int>(s.counter_) - 1; c >= 0; c--)
        this->push((s.Top - c)->data_);
}
Не хочется вот так вот делать:
C++
1
2
3
4
5
6
7
8
9
template <class T>
Stack<T>::Stack(const Stack &s) : Stack()
{
    Stack tmp;
    for (Node *n = s.Top; n; n = n->next_)
        tmp.push(n->data_);
    for (Node *n = tmp.Top; n; n = n->next_)
        this->push(n->data_);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru