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

stl, перемещение элемента из вектора в стек - C++

Восстановить пароль Регистрация
 
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
02.11.2013, 00:25     stl, перемещение элемента из вектора в стек #1
Всем привет.
Как переместить из вектора в вектор понятно
C++
1
std::remove_copy_if( vector1.begin(), vector1.end(), std::back_inserter(vector2), std::bind(fun, "Aaa") );
а как переместить в стек( std::stack )?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
02.11.2013, 01:14     stl, перемещение элемента из вектора в стек #2
вручную, inserter в стек не пройдет (у него даже итераторов begin и end нет).
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
02.11.2013, 01:26  [ТС]     stl, перемещение элемента из вектора в стек #3
MrGluck, спасибо, это я и хотел услышать
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
02.11.2013, 02:27     stl, перемещение элемента из вектора в стек #4
Что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <iterator>
 
template < typename T >
class stack_push_impl {
public:
    typedef typename T::value_type value_type ;
    stack_push_impl ( T & stack_ ) : mStackImpl ( stack_ ) {
    }
    void push_back ( const value_type & val ) {
        mStackImpl.push ( val ) ;
    }
private:
    T & mStackImpl ;
} ;
 
int main ( ){   
    std :: stack < int > st ;
    std :: vector < int > vec { 1 , 2 , 3 } ;
    stack_push_impl < std :: stack < int > > it( st ) ;
    std :: copy ( vec.begin () , vec.end () , std :: back_inserter ( it ) ) ;
    while ( !st.empty() ) {
        std ::cout << st.top ( ) << std :: endl ;
        st.pop ( ) ;
    }
}
Yandex
Объявления
02.11.2013, 02:27     stl, перемещение элемента из вектора в стек
Ответ Создать тему
Опции темы

Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru