如何在 C++ 中打印对象向量?

Posted

技术标签:

【中文标题】如何在 C++ 中打印对象向量?【英文标题】:How to print a vector of objects in c++? 【发布时间】:2021-09-13 01:53:17 【问题描述】:

我有一个 Customer 类的向量,其中包含我想打印出来的名称字符串等数据成员。使用 cout

vector<Customer> customerVector;
Customer myCustomer(name);
customerVector.push_back(myCustomer);
cout << customerVector[0];

我试过做类似的事情

cout << customerVector[0].getName; 

但到目前为止还没有运气。

【问题讨论】:

getName 是一个函数吗?然后cout &lt;&lt; customerVector[0].getName();. 【参考方案1】:

如果您计划经常打印 Customer 类的内容,重载流插入运算符可能是有意义的。

这将使您能够实现您正在寻找的目标。

class Customer 
public:
    Customer( std::string name, int age )
        : name_ std::move( name ) 
        , age_ age 
      

    friend std::ostream& operator << ( std::ostream& os, const Customer& customer ) 
        os << "Name: " << customer.name_
           << " "
           << "Age: " << customer.age_;

        return os;
    

private:    
    std::string name_;
    int age_;
;

int main( ) 
    Customer customer "Bill", 42 ;
    std::cout << customer << '\n';

【讨论】:

【参考方案2】:

这取决于你的对象是如何编写的。

如果你的客户是这样的:

class cus

    private:
        string name;
    public:
        string getname()return name;
        
;

那么你可以使用cout&lt;&lt;v[0].getname()

或者如果您的名字是公开的,您可以轻松使用cout&lt;&lt;v[0].name

【讨论】:

以上是关于如何在 C++ 中打印对象向量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 void() 函数在 C++ 中打印向量?

C++:如何检测向量中的重复项并打印一份?

如何在 C++ 中访问类对象向量中的对象?

如何将对象存储在向量中的对象中? (C++)

如何在 C++ 中将一个对象从一个向量复制到另一个向量?

如何在 C++ 中向向量中添加新对象