- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在上课,我的课上有 3 个数组,它们都代表相同的数据,但格式不同。我已经重载了 <<
在我的类之外声明的运算符采用常量引用而不是此类的友元。
SomeClass {
public:
// Nameless Union - All 3 Arrays Are of The Same Exact Data Type
// And All 3 Arrays Have The Same Exact Size. This Nameless Union
// Uses The Same Memory Address For All 3 Arrays And Their Elements.
// So An Element Is Changed By One Array Type, It Is Expected And
// Accepted For It To Change The Others. This Is Not 3 Different
// Arrays, This Is Still 1 Array Of Size 256, Just Different
// Representations Or Different Ways To Access Them.
union {
int m_256[256];
int m_16[16][16];
int m_4[4][4][4][4];
};
SomeClass() { std::fill( std::begin( m_256 ), std::end( m_256 ), 0 ); }
}; // SomeClass
std::ostream& operator<<( std::ostream& out, const SomeClass& c ) {
out << std::endl;
for ( unsigned box = 0; box < 4; box++ ) {
for ( unsigned slice = 0; slice < 4; slice++ ) {
for ( unsigned row = 0; row < 4; row++ ) {
for ( unsigned col = 0; col < 4; col++ ) {
out << "(" << box << "," << slice << "," << row << "," << col << ") = "
<< c.m_4[box][slice][row][col] << std::endl;
}
}
}
}
return out;
} // operator<<
这是我目前拥有的。我希望能够做的是也使用 operator<<
也使用此类,但能够区分以不同格式显示相同数据的方式。
我知道你不能这样做:通过添加第二个
std::ostream& operator<<( std::ostream& out, const SomeClass& c ) {
out << std::endl;
for ( unsigned i = 0; i < 16; i++ ) {
for ( unsigned j = 0; j < 16; j++ ) {
out << "(" << i << "," << j << ") = " << c.m_16[i][j] << std::endl;
}
}
return out;
} // operator<<
第三个
std::ostream& operator<<( std::ostream& out, const SomeClass& c ) {
out << std::endl;
for ( unsigned u = 0; u < 256; u++ ) {
out << u << " = " << m_256[u] << std::endl;
}
return out;
} // operator<<
由于这是模棱两可的。然而,我希望能够以 3 种不同格式中的任何一种显示它。
这个问题是否有任何工作或解决方案?我希望能够将类对象发送到流运算符,这些类型的运算符不能接受额外的参数,因为它们是二元运算符而不是函数。
最佳答案
您可以只使用适配器类来编写输出。您可以将格式说明符传递给构造函数或按类型区分。例如(按类型区分):
struct SomeClassAs256 {
SomeClass const& x_;
explicit(SomeClass const& x) : x_(x) {}
};
然后有一个运算符<<实现:
ostream& operator<<(ostream& os, SomeClassAs256 const& x) {
...
return os;
}
然后你使用它:
SomeClass x;
...
cout << SomeClassAs256(x) << endl;
关于C++ 重载 I/0 运算符 : Getting Past Ambiguity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36492699/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 11 个月前关闭。 Improve this
这个问题在这里已经有了答案: JavaScript get clipboard data on paste event (Cross browser) (23 个回答) 关闭 8 年前。 我有一个
我有一个 NSTextView,用户可以将纯文本粘贴到其中。 当用户在粘贴板中有“foo”时,我想粘贴“bar”。换句话说,用户转到网络浏览器,选择“foo”,cmd+c,切换到我的 NSTextVi
我对 do.call 如何工作感到困惑。 dat <- data.frame(v1 = c("a", "a", "b", "b"), v2 = c("a", "b"
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我刚刚熟悉 VBA 和我的代码 For k = 3 To ThisWorkbook.Sheets.Count ThisWorkbook.Sheets(k).Activate ActiveSheet.C
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
这个问题在这里已经有了答案: Intercept paste event in Javascript (4 个答案) 关闭 9 年前。 我需要更改粘贴事件的标准行为。我想将 Paste 事件的执行延
只执行一次粘贴我可以使用: noremap p p:let @"="" 粘贴后清空寄存器,后面的粘贴就失效了。然而,将发生的是更新撤消的空粘贴。因此按 p 3 次将需要 3 撤消调用以撤消初始粘贴。
在一个项目中,我发现一些 css 文件“闻起来”就像其中有复制粘贴的规则。 我想知道您检测文件中复制粘贴内容的策略是什么。 只是出于好奇,我想听听您显示文件相似性的提示和技巧! 最佳答案 试试 Sim
考虑以下示例: plot(c(2,4,6)~c(1,2,3),xlab="x", ylab=expression(paste('flux (g ',CO[2]~m^{-2}~h^{-1},')')))
对我来说是真正的问题,因为我不知道解决它。 我编写的 jQuery 脚本应该获取“粘贴”操作的输入值,并通过 ajax 将其传递给 codeigniter Controller 。 它实际上工作得很好
这是我正在尝试解决的问题 - 我完全不确定它是否可能。我有一个网络应用程序,我需要启用从应用程序到应用程序的数据复制/粘贴,但我遇到了粘贴问题。如果我使用 CTRL + V 快捷方式过去,我可以使用
这个问题已经有答案了: Printing newlines with print() in R (5 个回答) 已关闭 8 年前。 使用paste()函数时如何插入新行或者任何在 R 中连接字符串的函
我正在使用 sfsmisc 包中的 pretty10exp() 来使科学记数法看起来更好。例如: library(sfsmisc) a pretty10exp(a, digits.fuzz=3) #
我在下面的数据框中有两列,每一列都有按照特定顺序的级别: head(x1) soa congruency 1 200 9 2 102 2 3 68
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我有一个 edittext 字段,当我想在上面粘贴某人时,“粘贴”弹出窗口的文本颜色(系统默认“粘贴”弹出窗口,不是自定义的)不是与应用程序的全局文本颜色相同,仍然是黑色,很难阅读: 这是我的整体主题
我想自定义 matplotlib 图像显示,以便我可以键入 control-c,它将图像复制到剪贴板,然后我可以将它复制到 openoffice 电子表格以组织我所有的原始数据和图像结果。有什么办法吗
我有一个函数可以计算一些东西,然后将其分配给一个矩阵。该矩阵的名称来自粘贴语句(基于其他一些当前值)。然后我想将 dimnames 分配给矩阵,但不知道如何理解粘贴的名称。 事情是这样的: funct
我是一名优秀的程序员,十分优秀!