C ++打印出一对对象列表(由重载运算符创建)

时间:2016-10-24 03:50:25

标签: c++ list

只是想知道如何打印由重载赋值运算符创建的对列表。

我已经尝试过的,如此处所示,是创建一个数组(因此list1 [5])并为其赋值。然而,这似乎不是打印出一整套说5对数字的最佳方式,因为我必须使用循环分别打印每个单独的元素。

这个项目实际上最初有链接列表功能,我已经省略了,因为我不确定它是否相关,但我怀疑可能需要打印一个列表?除了手动打印每个元素外,我非常感谢能够做些什么。

Pair.h:

<svg>

Pair.cpp

#ifndef PAIR_H
#define PAIR_H

#include <iostream>
using namespace std;

class Pair
{
    friend ostream& operator<<(ostream& out, const Pair& p);

public:
    Pair( );    
    Pair(int firstValue, int secondValue);
    ~Pair( );

    void setFirst(int);
    void setSecond(int);

    int getFirst( ) const;
    int getSecond( ) const;

private:
    int first;
    int second;
};

#endif 

Main.cpp的

#include "Pair.h"

    //friend function
ostream& operator<<(ostream& out, const Pair& p)
{
    out << "(" << p.first << "," << p.second << ")";
    return out;
}

Pair::Pair( )
{ 
    first = 0;
    second = 0;
}

Pair::Pair(int firstValue, int secondValue)
{
    first = firstValue;
    second = secondValue;
}

Pair::~Pair( ){ }

void Pair::setFirst(int newValue)
{
    first = newValue;
}

int Pair::getFirst( ) const
{
    return first;
}

void Pair::setSecond(int newValue)
{
    second = newValue;
}

int Pair::getSecond( ) const
{
    return second;
}

这里只打印(10,11),但如果我要在列表中添加更多对,我必须手动打印所有这些,如果我坚持这种方法。

1 个答案:

答案 0 :(得分:0)

如果你知道这个列表中有多少元素,你可以使用for循环来打印所有元素:

void print(Pair* pairs, unsigned int size)
{
    cout << "\tList is:" << endl;
    for (unsigned int i = 0; i < size; i++)
    {
        cout << "(*pairs)[i] << endl;
    }
}