我正在尝试将单词从一个文件复制到另一个文件,这是我的代码:
int main()
{
string from, to;
cin >> from >> to;
ifstream ifs(from);
ofstream ofs(to);
set<string> words(istream_iterator<string>(ifs), istream_iterator<string>());
copy(words.begin(), words.end(), ostream_iterator<string>(ofs, "\n"));
return !ifs.eof() || !ofs;
}
Run Code Online (Sandbox Code Playgroud)
这样我得到一个编译错误:
expression must have class type
Run Code Online (Sandbox Code Playgroud)
在我称之为copy()的行
如果我将迭代器的结构更改为以下它的工作原理:
set<string> words{ istream_iterator<string>{ ifs }, istream_iterator<string>{} };
Run Code Online (Sandbox Code Playgroud)
我想在cpp中初始化对象时选择()和{}只是一个选择问题,但我想我错了.谁可以给我解释一下这个 ?
我知道在网上做这个的例子,但每个例子都不同,我自己的实现也是如此.我试图弄清楚我的实现有什么问题,因为它没有按预期工作.
代码段:
var mousePressX = -1;
var mousePressY = -1;
document.getElementById("contextMenu").addEventListener("mousedown", function(event) {
mousePressX = event.clientX;
mousePressY = event.clientY;
}, false);
document.getElementById("contextMenu").addEventListener("mouseup", function(event) {
mousePressX = -1;
mousePressY = -1;
}, false);
document.getElementById("contextMenu").addEventListener("mousemove", function(event) {
if (mousePressX != -1 && mousePressY != -1) {
repositionElement(event.target, event.clientX, event.clientY);
}
}, false);
function repositionElement(element, currentMouseX, currentMouseY) {
element.style.left = element.offsetLeft + (currentMouseX - mousePressX) + 'px';
element.style.top = element.offsetTop + (currentMouseY - mousePressY) + 'px';
}
Run Code Online (Sandbox Code Playgroud)
jsfiddle:http: //jsfiddle.net/4rLctko8/
无法弄清楚出了什么问题,但我注意到如果我改变以下几行:
element.style.left …Run Code Online (Sandbox Code Playgroud)