只是想知道如何打印由重载赋值运算符创建的对列表。
我已经尝试过的,如此处所示,是创建一个数组(因此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),但如果我要在列表中添加更多对,我必须手动打印所有这些,如果我坚持这种方法。
答案 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;
}
}