使用vector作为类成员 我对C++和编程都是新的,而且英语不是我的第一语言,所以我可能无法正确地回答我的问题,让你理解。

使用vector作为类成员 我对C++和编程都是新的,而且英语不是我的第一语言,所以我可能无法正确地回答我的问题,让你理解。,c++,class,vector,C++,Class,Vector,我写了以下工作程序: #include<iostream> #include<vector> using namespace std; class Vector{ vector<int>numbers; public: Vector(vector<int> const& v) : numbers(v) {} void print(){ for (const auto& elem : nu

我写了以下工作程序:

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

class Vector{
    vector<int>numbers;

public:
    Vector(vector<int> const& v) : numbers(v) {}

    void print(){
        for (const auto& elem : numbers){
            cout << elem << " ";
        }
    }
};


int main(){

    Vector p{ vector < int > {15, 16, 25} };
    p.print();
}

它不起作用。我的问题是,我必须做什么才能让它工作?非常感谢您的帮助!提前感谢。

获取所需内容的最简单方法是使用一组附加的大括号来指示提供的参数一起构成构造函数的第一个参数。尝试:

int main() {

    Vector p{ {15, 16, 25} };
    p.print();
}
另一种方法是,如果您试图使它与当前的
main
一起工作,则实现构造函数

#include <initializer_list>
#include <iostream>
#include <vector>

using std::vector;
using std::cout;

class Vector {
    vector<int>numbers;

public:
    Vector(vector<int> const& v) : numbers(v) {}

    // Implement initializer list constructor
    Vector(std::initializer_list<int> args) : numbers(args.begin(), args.end()) {}

    void print() {
        for (const auto& elem : numbers) {
            cout << elem << " ";
        }
    }
};


int main() {

    Vector p{ 15, 16, 25 };
    p.print();
}
#包括
#包括
#包括
使用std::vector;
使用std::cout;
类向量{
矢量数;
公众:
向量(向量常数&v):数(v){}
//实现初始值设定项列表构造函数
向量(std::initializer_list args):数字(args.begin(),args.end()){}
作废打印(){
用于(常量自动和元素:数字){

cout您需要添加一个构造函数,它接受一个std::initializer\u列表,如下所示:

Vector(std::initializer_list<int> v) : numbers(v){}
Vector(std::initializer_list v):数字(v){

除了你的其他构造函数之外,再加上它,这应该会起作用。

欢迎来到Stack Overflow。请花点时间阅读并参考你可以在这里询问的内容。“它不起作用。我的问题是,我必须做些什么才能使它起作用?”没有明确的问题描述。什么不起作用?请逐字逐句地在问题中发布所有错误消息。理想情况下是“它不起作用”-在什么意义上?您收到了什么错误消息?您使用的编译器是什么?编译器的版本是什么?您的错误是什么?使用visual studio 2013 express,我收到了以下错误消息。没有构造函数“Vector::Vector”的实例与参数列表匹配参数类型是:(int,int,int)如果您真的想避免这种情况,可以将其更改为v为r值。这将允许请求的具体实现OP。非常感谢。非常感谢,这回答了我的问题。很抱歉没有真正解释我的问题。
Vector(std::initializer_list<int> v) : numbers(v){}