C++ 代码失败在矢量数据之前插入数字

C++ 代码失败在矢量数据之前插入数字,c++,function,vector,C++,Function,Vector,我被授权使用函数编写代码,在请求用户输入后,将数字放在向量之前,如下所示: 如果向量是11,12,13,14 新向量是111212313414,直到向量完成,然后我必须打印它,但我得到一个向量下标超出范围的错误,请提供任何帮助。 这是我的密码 #include<iostream> #include<string> #include<vector> using namespace std; vector<double> llena_vector(i

我被授权使用函数编写代码,在请求用户输入后,将数字放在向量之前,如下所示: 如果向量是11,12,13,14 新向量是111212313414,直到向量完成,然后我必须打印它,但我得到一个向量下标超出范围的错误,请提供任何帮助。 这是我的密码

#include<iostream>
#include<string>
#include<vector>
using namespace std;

vector<double> llena_vector(int x,vector<double> ingreso)
{
cout<<"Ingrese numeros: ";
while(cin>>x);
ingreso.push_back(x);
    return ingreso;

}
vector<double> arma_vector(int contador,vector<double> intercalado)

{
int i=0;
for(contador=1;contador< intercalado.size()+1;contador++);{
    intercalado.insert(intercalado.begin()+i,contador);i++;}
return intercalado;
}

vector<double> imprime_vector(int cuenta,vector<double> imprimir)

{
for(cuenta=0;cuenta<imprimir.size();cuenta++);
cout<<imprimir[cuenta]<<" ";
return imprimir;
}

int main()
{
int y=0;
int q=0;
int w=0;
int f=0;
vector<double> usuario;
vector<double> guardar;
vector<double> resultado;
vector<double> print;
guardar= llena_vector(y,usuario);
resultado=arma_vector(q,guardar);
print=imprime_vector(w,resultado);
system("pause");

}
#包括
#包括
#包括
使用名称空间std;
向量llena_向量(int x,向量入口)
{
coutx);
入口推回(x);
返回入口;
}
向量arma_向量(int contador,向量intercalado)
{
int i=0;
for(contador=1;contador对于(cuenta=0;cuenta我想有一个输入错误:您应该删除
for(cuenta=0;cuenta中的最后一个
。)首先,您的代码有很多问题。但是,我已经对其进行了修改,使其与原始代码保持一致

#include <iostream>
#include <string>
#include <deque>
#include <cstdlib>
using namespace std;

deque<double> llena_deque(int x, deque<double> ingreso)
{
    cout<<"Ingrese numeros: ";
    while(cin>>x)
        ingreso.push_back(x);
    return ingreso;
}

deque<double> arma_deque(int contador, deque<double> intercalado)
{
    int size = intercalado.size()+1;

    for(int i=1; i < size; ++i) {
        cout << i << endl;
        intercalado.push_front(i);
    }
    return intercalado;
}

deque<double> imprime_deque(int cuenta, deque<double> imprimir)
{
    for(cuenta=0;cuenta<imprimir.size();cuenta++)
        cout << imprimir[cuenta] << " ";

    return imprimir;
}

int main()
{
    int y=0;
    int q=0;
    int w=0;
    int f=0;
    deque<double> usuario;
    deque<double> guardar;
    deque<double> resultado;
    deque<double> print;

    guardar= llena_deque(y,usuario);
    resultado=arma_deque(q,guardar);
    print=imprime_deque(w,resultado);

    return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
德克·莱纳·德克(int x,德克·安格鲁)
{
coutx)
入口推回(x);
返回入口;
}
德克·阿玛·德克(因特康塔多、德克·因特卡拉多)
{
int size=intercalado.size()+1;
对于(int i=1;icout这是一个干净的代码版本,处于工作状态

#include <iostream>
#include <vector>
using namespace std;

void fill_vector(vector<double>& v)
{
  cout << "Enter 5 numbers." << endl;
  for (int i = 0; i < 5; ++i)
  {
    double d;
    cin >> d;
    v.push_back(d);
  }
}

void insert_count(vector<double>& v)
{
  size_t size = v.size();
  for (size_t i = 0, j = 0; i < size; ++i, j += 2)
  {
    vector<double>::iterator pos = v.begin() + j;
    v.insert(pos, i + 1);
  }
}

void print_vector(vector<double>& v)
{
  for (size_t i = 0; i < v.size(); ++i)
    cout << v[i] << " ";
  cout << endl;
}

int main()
{
  vector<double> v;
  fill_vector(v);
  insert_count(v);
  print_vector(v);
}
#包括
#包括
使用名称空间std;
空洞填充向量(向量和v)
{
cout d;
v、 推回(d);
}
}
无效插入计数(向量和v)
{
尺寸=v.尺寸();
对于(尺寸i=0,j=0;i可能有拼写错误,但它仍停留在^Z中。感谢您的支持help@David,在修复打字错误后,您是否仍有问题?首先,请使用
{
}正确定义while和loop的范围
。其次,即使您的问题得到解决,我建议使用局部作用域
size\u t
而不是
int
重写for循环。第三,我建议在
arma\u vector
的情况下将您的向量作为参考传递,在
imprime\u vector
的情况下将常量参考传递