41

ループ内に空のベクターを作成しようとしていますが、そのループに何かが読み込まれるたびに要素をベクターに追加したいと考えています。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
   std::vector<float> myVector();

   float x;
   while(cin >> x)
      myVector.insert(x);

   return 0;
}

しかし、これは私にエラーメッセージを表示しています。

4

4 に答える 4

51

std::vector::push_back()代わりに使用する必要があります:

while(cin >> x)
  myVector.push_back(x);
//         ^^^^^^^^^

リンクでstd::vector::insert()わかるように、要素を挿入する位置を示すためにイテレータが必要です。

また、@ Joel がコメントしたように、ベクトル変数の定義で括弧を削除する必要があります。

std::vector<float> myVector;

そしてそうではない

std::vector<float> myVector();

後者を実行すると、C++ の最も厄介な解析問題に遭遇します。

于 2013-08-01T02:31:39.070 に答える
4

使用push_back:

while(cin >> x)
  myVector.push_back(x);

このinsert関数は、挿入する位置を示す反復子を最初の引数として取ります。

また、次の宣言でかっこを取り除く必要がありますmyVector

std::vector<float> myVector;
于 2013-08-01T02:29:55.360 に答える