C++ 将向量(在结构中定义时)传递给函数

C++ 将向量(在结构中定义时)传递给函数,c++,struct,C++,Struct,当我尝试运行此操作时,会出现以下错误: error C2676: binary '[': 'const Args' does not define this operator or a conversion to a type acceptable to the predefined operator. error C2088: '[': illegal for struct. error C2660: 'Mergesort::get_uniform': function does not

当我尝试运行此操作时,会出现以下错误:

error C2676: binary '[': 'const Args' does not define this operator or a conversion to a type acceptable to the predefined operator.

error C2088: '[': illegal for struct.

error C2660: 'Mergesort::get_uniform': function does not take 1 arguments.  
如何访问函数中的向量参数

我传错了吗

注意,我需要保持函数头的原样

还有,有没有一种方法可以让args中的向量args保持为未定义的大小,并在创建统一时定义其大小

谢谢你的反馈

int get_sequence(double S[], int k, const Args &args); // function prototype

struct Args
{
string name;
vector<double> args;
Args() : args(2) {};
};

int main()
{

Args uniform;
uniform.name = dist_name;
uniform.args[0] = min;
uniform.args[1] = max;

distribution.get_sequence(S, k, uniform);

} // end main

int Mergesort::get_sequence(double S[], int k, const Args &args)
{

for (int i = 0; i < k; i++)
{
    S[i] = get_uniform(args[0], args[1]);
    cout << S[i] << " ";
}

return k;
}
int get_序列(双S[],int k,常量Args&Args);//功能原型
结构参数
{
字符串名;
向量args;
Args():Args(2){};
};
int main()
{
Args统一;
uniform.name=dist\u name;
统一参数[0]=min;
统一参数[1]=最大值;
分布。获得_序列(S,k,均匀);
}//末端总管
int Mergesort::get_序列(双S[],int k,常量Args&Args)
{
for(int i=0;i我想你想要这个:

S[i] = get_uniform(args.args[0], args.args[1]);

因为
args
属于
args
类型,并且它有一个成员
args
,这是一个向量。我建议您适当地命名结构和变量,以避免混淆。

我想您需要这样:

S[i] = get_uniform(args.args[0], args.args[1]);

因为
args
属于
args
类型,并且它有一个成员
args
,这是一个向量。我建议您适当地命名结构和变量,以避免混淆。

请像往常一样发布。
分布。获取序列(S,k,uniform)
没有意义。什么是
S
k
实际上?请在错误消息和您发布的代码之间发布某种关联。此代码是最小的,因为我需要显示问题的所有部分才能使问题有意义。它是完整和可验证的,因为这正是我遇到的编译问题我明白了。你的编译器告诉了你错误消息指的是哪一行。你没有向我们传递这些信息。不完整。行号是理解编译器错误的最有用的信息。也许我们可以在没有这些信息的情况下找到它,但是当你可以告诉我们时,我们为什么要这样做呢?请像往常一样发布一条。
distribution.get_序列(S,k,uniform)
没有意义。什么是
S
k
实际上?请在错误消息和您发布的代码之间发布某种关联。此代码是最小的,因为我需要显示问题的所有部分才能使问题有意义。它是完整和可验证的,因为这正是我遇到的编译问题我明白了。您的编译器告诉了您错误消息所指的行。您没有将该信息传递给我们。不完整。行号是理解编译器错误最有用的信息。也许我们可以在没有这些信息的情况下找到它,但当您可以告诉我们时,我们为什么要这样做呢?