QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5569|回复: 1
打印 上一主题 下一主题

vector调用push_back为什么会失败?初始化了也不行

[复制链接]
字体大小: 正常 放大

16

主题

9

听众

31

积分

升级  27.37%

  • TA的每日心情
    慵懒
    2015-4-30 14:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    自我介绍
    拉拉
    跳转到指定楼层
    1#
    发表于 2015-4-14 10:06 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    头文件handle.h; |3 v- O* m5 O6 {2 \
    #ifndef _HANDLE_H
    2 h0 x6 D0 s$ ?/ D7 C- x" \#define _HANDLE_H8 @7 ~, Y- i0 ~1 L5 s/ R$ ?
    + z2 I7 a% }0 e6 A7 g' n
    class Handle{
    9 f* E$ m% H/ c" q" e2 ]: g    struct StackOfInt;
    ! o$ @1 |: \. I& \; ?" V: k2 F* B7 Q    StackOfInt* smile;5 F% N0 y/ _) \9 f% I
    public:, O% }  N+ ]) F/ Z1 H
        void initialize();
    * D" c: I7 W7 n    void cleanup();/ b7 H# u$ u+ ~+ K% j% A0 w' |
        void push(int elem);
    , i7 w( N* O- k+ w    int fetch();; ^5 E2 K& _& U0 R. {
        int pop();8 C4 `  w( V# U( I2 C# u
        int count();2 A5 D5 t3 }$ N' U
    };: }/ {8 ]3 \, ^& ?
    * r( q. x/ f& ?4 X9 k* `
    #endif//_HANDLE_H
    " h- O! y( w" Y$ A. A
    / ?& l4 e1 B" X, @类class的函数定义
      K% f& x, g, H& p0 o: \/ _#include<iostream>, C1 F7 h. e: Y: U' [0 Z* o6 Z
    #include<vector>
    7 j+ w: v9 L; C( i6 l2 D' s#include "handle.h"* Y% b" ^0 T$ D9 Q5 d
    using namespace std;7 g' ]3 u& ]" ]7 |
    & g! B& p5 `' J: p5 D! |
    struct Handle::StackOfInt{
    , H2 o$ Z7 P/ H( [    vector<int> top;8 i: _2 i5 [4 Z* H! |
    };. ^0 b( N" X( Y, ?5 P. q5 k+ \

    : W" Y7 y9 h8 D& b" C2 k9 fvoid Handle::initialize(); b, S7 E% ], w1 F% }
    {
    * l4 m) }& y: {* T* d    StackOfInt* smile = new StackOfInt;$ S+ W2 K4 ]" K* \- Z) E2 R0 Y
        smile->top.reserve(100);4 p$ j. t0 O- G8 L3 ^7 y! `, d  |# |
        cout << smile->top.capacity() << endl;3 A  L. ?" a: f% j6 K6 `* P
    }3 N$ j$ a9 U" V% h! P6 G# E
    4 c, p6 W$ T% K1 ]; ~, C
    void Handle::cleanup()4 Y! g2 g3 A6 Y' |( c. W5 S/ L! D9 L
    {
    " K4 g$ _6 m: H* ?7 o% g7 v! ]    delete smile;0 r6 I: ]* f) Q5 f
    }6 @) g9 X% W: B& ^. l0 Y) x! ?
    1 i& {2 D& M7 m0 L4 d( U/ }( D
    void Handle::push(int elem)+ K7 ~/ g% D* s$ r; U  d  w
    {+ ^# O6 Y- k+ r% _) `
        cout << "before push\n";- ^; p) M8 Q/ S8 f) Q! }7 S; p
        smile->top.push_back(elem);
    ( S, G' p( }8 m2 s% ^    cout << "after push\n";
    - _1 ^" g# b- o" P}: c: U6 R$ @/ a
    int Handle::fetch()
    ( s) {$ j$ ?( s1 _' x6 ]. S{; K, _8 m5 d# `, s' C. M& E4 n
        return smile->top.back();
    7 X) c& c' m. L7 S, `) e}* z+ j( m, j- a3 r' G; d
    int Handle::pop()
    % [5 o1 O! p* e6 u$ t, I8 r{
    * m1 }, X5 N$ \/ h  u    int n = smile->top.back();9 G# Z7 q. M% h
        smile->top.pop_back();. L. E, [( [0 W" `
        return n;' v6 O- O2 ~& s. r3 F' O
    }/ @6 S/ p. H  V9 \$ f4 N0 {3 D  y
    int Handle::count()' s, L$ Z7 A/ t/ J% z& {
    {% j4 O0 V0 N1 D; ?$ @
        return smile->top.size();( t2 b$ h: V; Z! ^1 {$ G
    }" I! F( |  X( Y/ r' o2 ]: j
    8 z5 b3 [4 H3 i8 v) O
    主函数 main.cpp
    3 a2 d1 }/ S: y4 o4 I/ W* j#include<iostream>
    ) O% X7 A! S7 {7 O  h% I; G. g#include "handle.h"% _0 B- B" ]/ G8 l3 Q" @$ E1 W
    using namespace std;
    ) A( f& N$ g' f, j! O, S; Y9 X% L2 ^, V1 \! E4 g  X
    int main()9 C$ E$ |* z# x% M# f
    {" x+ [+ Z4 ^* Q$ V2 K
        Handle h;" m6 ^. H5 M0 ]# A4 Q) ?
        h.initialize();
    ' @9 r1 t8 I3 L2 U9 A3 N    for (int i = 0; i < 10; i++)- Y. T6 B9 q* \
        {5 p9 Q( \# n* [3 [3 [
            h.push(i);) {/ w2 @4 g+ S2 Z& z4 H1 L
            cout << "last element is " << h.fetch() << endl;
    ! |2 C, d# R& \2 u    }+ L: \8 b0 I& m! O+ b
        for (int i = 0; i < 10; i++)
    ) K' p! p  C4 Q! z6 ^    {
    3 d  X) `7 V( G+ j& L3 y        h.pop();- @  n, @# G+ d! L
        }9 E3 n" U3 Z) ]

    1 z( \* p3 l5 X2 O' U5 K/ V" E/ ~    return 0;
    7 |. y5 t* ^. B$ s! k}
    - ]2 Y$ p/ W/ m) Q6 {( H" f; \) u# H7 Z0 S" T; V' h7 j; u# R

    ) {/ C. X3 p4 f* f# o7 ~5 d5 t4 ]1 u1 H0 L+ c
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    342

    主题

    41

    听众

    214748万

    积分

    升级  0%

  • TA的每日心情
    擦汗
    2015-7-24 10:40
  • 签到天数: 37 天

    [LV.5]常住居民I

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组MATLAB的工程数学应用

    群组SAS公益讲座

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-10 04:27 , Processed in 0.404925 second(s), 58 queries .

    回顶部