小编J S*_*J S的帖子

删除特定类型的所有事件监听器

我想删除使用添加的特定类型的所有事件侦听器addEventListener().我看到的所有资源都说你需要这样做:

elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown',specific_function);
Run Code Online (Sandbox Code Playgroud)

但我希望能够在不知道它目前是什么的情况下清除它,如下所示:

elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown');
Run Code Online (Sandbox Code Playgroud)

javascript events

128
推荐指数
7
解决办法
13万
查看次数

用于快速检查重叠范围的数字的数据结构

假设我有以下数字范围:

0-500 0-100 75-127 125-157 130-198 198-200

现在,假设我需要能够检查任何给定的数字并查看它所在的范围.最有效地使用什么类型的数据结构来告诉,例如,数字100属于范围0-500,0 -100和75-127?我只想要一个包含起始值的二叉树吗?在这种情况下,树中的每个节点是否可以在该起始点保存包含每个范围的多个对象?

请注意,我只需要检索这个特定的应用程序,我真的不认为自己需要在进程中修改它,所以检索速度是我的首要任务.

谢谢!

algorithm data-structures

8
推荐指数
1
解决办法
1100
查看次数

HTML5 Canvas:操纵个别路径

在使用HTML5画布时,如何保存javascript变量/数组的特定路径,然后对其进行操作?这是我到目前为止所做的事情:

                    ctx.beginPath();
                        ctx.moveTo(lastX,lastY);
                        ctx.lineTo(x,y);
                        ctx.lineWidth = s*2;
                        ctx.stroke();
                    ctx.closePath();
Run Code Online (Sandbox Code Playgroud)

现在,我需要的是能够有时将此路径存储在数组中.然后,我需要能够返回并稍后更改数组中所有路径的颜色.(显然,我也不知道该怎么做.)

javascript html5 canvas

5
推荐指数
1
解决办法
5080
查看次数

string :: npos如何知道我指的是哪个字符串?

我正在编写一本关于C++的书,它只是string::npos用来检查字符串中是否存在字符位置.我不明白这个机制怎么可能知道我指的是哪个字符串呢!此特定代码计算子字符串的出现次数.

码:

for (int i=cats.find("cat",0);i!=string::npos;i=cats.find("cat",i)) {
    ++catCount;
    ++i;
}
Run Code Online (Sandbox Code Playgroud)

我明白它是在第一次出现的时候开始循环,每次通过都会递增计数器以避免计算两次相同的子串,然后在每次循环结束时计数器跳转到下一次出现的位置子串.当计数器不存在作为字符串的字符索引时,循环停止.

虽然这个字符串被称为"猫",但在"string :: npos"中找不到"cats",所以如何知道这是我甚至在搜索的变量?是因为那是最后一个要调用的变量.find()吗?

谢谢!

c++ string

5
推荐指数
2
解决办法
1265
查看次数

为什么我不能将原始类型分配给参数化类型?(JAVA)

如果将参数化类型对象分配给原始类型对象,据我所知,原始类型对象采用参数化类型.这对我来说很有意义.但为什么它不能相反呢?我认为在将Raw Type分配给Paramterized Type之后,编译器将简单地假设参数化类型.

谢谢你的帮助!

好吧,据我所知,以下内容没有问题,将Raw Type视为传递了String类型:

SomeClass<String> instance1 = new SomeClass<>();
SomeClass instance2 = instance1;
Run Code Online (Sandbox Code Playgroud)

但是以下内容将抛出警告,并且任何类的方法都不会隐含一种String类型:

SomeClass instance1 = new SomeClass();
SomeClass<String> instance2 = instance1;
Run Code Online (Sandbox Code Playgroud)

我想我只是想出来了,所以如果是这样我很遗憾浪费每个人的时间.这是否有效,因为instance2正在创建一个指针而不是一个新对象,并且指针不能改变它指向的对象的行为?

java generics types

2
推荐指数
1
解决办法
763
查看次数

C++指针,链表混淆

我正在尝试用C++构建一个链表.我的理解是,我创建的代码应该创建一个节点,然后逐步将4个链接到最后.不幸的是,虽然我希望看到cout结果为"12 123 1234 12345"我看到"12 12 12 12",而在我的主要内容我无法遍历列表 - 它只是崩溃了.

我有以下代码:

struct listNode {

    int val;
    listNode* next;

};


int nodeCount = 0;

listNode* addToEnd(listNode* node) {

    listNode* newNode = new listNode;
    newNode->val = ++nodeCount;
    newNode->next = NULL;

    if (node == NULL) {
        return newNode;
    }

    listNode* current = node;
    cout<<"\n\n";
    do {
        if (current->next == NULL) {
            current->next = newNode;
        }
        cout<<current->val<<"\n";
        current = current->next;
    } while (current->next != NULL);
    cout<<current->val<<endl;

}


int main()
{

    listNode* first = addToEnd(NULL);

    addToEnd(first); …
Run Code Online (Sandbox Code Playgroud)

c++ linked-list

1
推荐指数
1
解决办法
146
查看次数

和表现得像OR?

我正在评估输入并将其结果(由空格分隔)分配给两个变量.不幸的是,如果用户=="用户"或密码=="通过",它似乎打破了循环!

    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
        string username;
        string password;
        do {
            cout<<"Please enter the correct username and password.\n";
            cin>>username>>password;
            cin.ignore();
        } while (username != "user" && password != "pass");
        cout<<"username and password correct";
    }
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
82
查看次数

getline如何与cin一起使用?

我觉得有很多类似的问题,所以如果这是重复的话,我真的很抱歉.但是,我无法找到这个具体问题的答案.

当cin被传递给它时,我很困惑getline是如何工作的,因为我的理解是它应该在每次调用时调用cin.使用我正在阅读的书中的代码时,getline被调用几次,但只发送一个输入.除了在这些getline调用中之外,不会从任何地方调用cin对象.

这里发生了什么?当达到getline时,程序是否只是停在其轨道上并等待输入流传递包含所需分隔符的值?如果是这种情况,那么后续的getline调用是否必须等待,因为输入流已经有包含各自分隔符的数据?我跑了几个测试表明可能就是这种情况.

这是代码:

    string firstName;
    getline(cin,firstName,',');

    string lastName;
    getline(cin,lastName,',');

    string job;
    getline(cin,job,'\n');

    cout<<firstName<<" "<<lastName<<" is a "<<job<<endl;;
Run Code Online (Sandbox Code Playgroud)

如果这是一个愚蠢的问题再次抱歉,但我环顾四周,真的找不到答案.提前感谢您提供的任何帮助!

澄清:

此代码为控制台输入"First,Last,Job \n"输出"First Last is a Job"

c++ input stream

0
推荐指数
1
解决办法
9742
查看次数

C++:创建大于大小的数组索引而不会导致错误

我正在学习C++,据我所知,如果你试图为它分配一个由于数组上的大小限制而无效的值,那么数组不应该填充,但是下面的代码正确地输出232:

int stuff[5];
stuff[7] = 232;
cout<<stuff[7];
Run Code Online (Sandbox Code Playgroud)

如果这是一个令人难以置信的愚蠢问题,我很抱歉,但这只是我的编译器在运行时修补之前的事情吗?

c++ arrays

-1
推荐指数
1
解决办法
74
查看次数