2012-01-30 5 views
0

私はStroustrupのプログラミングの原則とC++を使った実践を読んでいます。 287ページでは、彼は評価序列の見出しの例を挙げています。しかし、私は例を完全に理解していません。構築されると、誰かが「終了」するまで毎回「弦」入力が作成され、破棄されます。このベクターにはどのように記入しますか? Stroustrupの例

ベクトルvに入力されるすべての文字列が含まれるようにコードを変更するにはどうすればよいですか?書かれているように、私はv.size()は決して1以上ではないだろうと思います。私はループを反復し、ループしながらすべてのループを挿入、削除、挿入するのではなく、ベクトルに挿入します。すべての場合

(ブックからのコード)

vector <string> v; //this is defined globally 

void function() 
{ 

    string s; 
    while(cin>>s && s!="quit") 
    { 
    string stripped; 
    string non_letters; 

    for (int i=0; i<s.size(); ++i) 
     if (isalpha(s[i])) 
       stripped +=i; 
     else 
       not_letters += s[i]; 
    v.push_back(stripped); 
    } 

} 
+1

実際のコードを投稿してください。あなたが投稿したものは意味をなさない混乱です。 –

+0

@Jerry Carson:コードスニペットが「批評、コメント、ニュース報道、教育(教室で使用するための複数のコピーを含む)、奨学金、研究*などの目的で*」の場合、著作権侵害ではありません。 ](http://www.law.cornell.edu/uscode/17/107.html)。確かにこの質問は「奨学金」または「研究」、あるいはおそらく「教える」のいずれかに当てはまります。なぜなら、それは本当にこのサイトの全体のポイントなのですから。私たちはあなたを助けるために少なくとも実際のコードスニペットを見る必要があります。 –

+1

*著作権上の理由から、このコードは本のコードとまったく同じではありません。*本を読んではいけません。 –

答えて

0

forループs入力Sの文字でstrippedを満たします。 whileループの最後の前に、v1の最後にプッシュされます。したがって、v1.size()は非終了入力の数です。

マインド、push_backは文字列コピーを行い、}ではデストラクタstrippedが呼び出されます。 (実際、コンパイラはこの2つの演算を最適化します。)

関連する問題