【发布时间】:2014-10-15 05:50:04
【问题描述】:
我正在尝试创建一个整数向量,然后通过一个函数将其写出,该函数将打印具有特定宽度的值。
假设vector被{1,2,3,4}填充,限制宽度为4,那么输出为:
1 2
2 4
使用 turntostring 将数据类型转换为字符串并返回 int,我能够将 int 转换为字符串并在打印向量的函数中获取其大小。
turntostring(r.at(i)).size();
所以在i = 2,我有int = 4,上面的代码返回值是1。
这很好,直到我必须对类向量执行相同操作,并且当我尝试访问此类中的元素时,我无法使用上面的同一行代码。
我尝试为该类编写一个打印函数并编写此函数以获得相同的结果:
r.at(i).print().size();
Print 会接受类并返回一个字符串。
但我需要使用同一行代码来访问元素的大小作为要求。这意味着同一行代码必须适用于 int 类型的 vector 和具有 int 类型成员的类的 vector 例如:
class fake
{
int num;
}
vector<int> r;
vector<fake> k;
我应该能够访问这两个向量中的每个元素并使用.size(),然后在它们上使用turnintostring。
如果有什么我不知道的方法,请告诉我。
【问题讨论】:
-
"表示向量被{1,2,3,4}填充,限制宽度为4,则输出为:1 2 2 4"。恐怕我不明白你要做什么,你能说得清楚一点吗?
-
我忘记了 4 个空格以便显示为代码。我的意思是宽度将是给定的 int,比如说 4。宽度将限制在新行之前一行可以有多少个字符。因此对于上述内容:它将打印 1 2 然后下一行 2 4。在添加一个字符串后添加一个空格,向量中的每个元素将通过 turnintostring 在其他代码留置权中转换为字符串,它会为整个打印过程。我遇到的困难部分是使用普通的 .at() 命令访问类的私有成员。