小编0x4*_*2D2的帖子

为什么/我应该如何在JavaScript中使用对象?

我理解如何实例化对象并调用它们,但我找不到在脚本中使用它们的理由.我可以

var obj = {
    hi: function() {
        return "Hello";
    }
}; 
Run Code Online (Sandbox Code Playgroud)

但为什么我不能像以下那样做:

function hi() {
    return "Hello";
}
Run Code Online (Sandbox Code Playgroud)

我从来没有理解为什么我应该使用原型.我在JavaScript中做的大多数事情都可以在没有对象的情况下完成.但我想使用对象.什么是对象以及我应该使用它们的原因是什么?

javascript programming-languages

12
推荐指数
2
解决办法
7533
查看次数

表格元素中是否允许使用div和span?

我问这个问题来测试我的HTML的有效性.我可以很好地尝试这个(我有,并且它有可能),但我只是好奇这是否允许在HTML中.如果没有,如何在表单内模拟div或span元素?使用blockquote?

html forms

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

是oncontextmenu跨浏览器?

window.oncontextmenu = function() {
    return false;
};
Run Code Online (Sandbox Code Playgroud)

这适用于所有主流浏览器,以便不会启动右键单击吗?

javascript cross-browser

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

移动应用程序原型设计工具

什么是最好的移动原型制作工具,以及什么是移动原型的最佳方法

我想先创建一些免费的代码,然后用相同或更高级的工具开始设计更多东西.

iphone mobile android windows-phone-7

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

c ++中两个向量的元素乘法

我试图用两个向量进行以下数学运算:

v1 = [a1][a2][a3][a4][a5]
v2 = [b1][b2][b3][b4]b5]
Run Code Online (Sandbox Code Playgroud)

想要计算:

v = [a2*b2][a3*b3][a4*b4][a5*b5]
Run Code Online (Sandbox Code Playgroud)

请注意,我不想要新向量中的第一个元素.

我想知道是否有一种更有效(单线程)的方法来在c ++中乘以(逐个元素)两个向量而不是for-loop(使用回推).我目前的做法如下,

for(long i=1;i < v1.size();++i){
v.push_back(v1[i]*v2[i]);
}
Run Code Online (Sandbox Code Playgroud)

我也试过以下,

 for (long i = 1; i < v1.size(); ++i){
     v[i-1] = v1[i]*v2[i];
 }
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c++

12
推荐指数
2
解决办法
2万
查看次数

C#的C/C++互操作性命名约定

考虑以下Win32 API结构:

typedef struct _SECURITY_ATTRIBUTES {
  DWORD  nLength;
  LPVOID lpSecurityDescriptor;
  BOOL   bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
Run Code Online (Sandbox Code Playgroud)

将此对象移植到C#时,我应该遵循此处使用的名称命名约定,如下所示:

public struct _SECURITY_ATTRIBUTES
{
    public int nLength;
    public unsafe byte* lpSecurityDescriptor;
    public int bInheritHandle;
}
Run Code Online (Sandbox Code Playgroud)

或者我可以全力以赴,并以C#样式编写我的结构,如下所示:

public struct SecurityAttributes
{
    private int length;
    private unsafe byte* securityDescriptor;
    private int bInheritHandle;

    public Int32 Length
    {
        get { return this.length; }
        set { this.length = value; }
    }

    public Byte* SecurityDescriptor
    {
        get { return this.seurityDescriptor; }
        set { this.securityDescriptor = value; }
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c c# c++ pinvoke winapi

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

为什么在std :: cout上显式调用operator <<会导致意外输出?

我只是好奇如果我明确地打电话会发生什么operator<<,std::cout因为我知道它a.operator()与...完全相同a().所以我这样做,它打印出一些奇怪的东西:

#include <iostream>

using std::cout;

int main()
{
    cout.operator<<("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

Output: 0x80486a0

奇怪的是,它输出一个地址(地址可能不同,但它应该仍然是一个地址).我认为这是字符串的地址所以我尝试解除引用它以使其输出字符串:

*( cout.operator<<("Hello World") );
Run Code Online (Sandbox Code Playgroud)

但是我得到了很长的错误

no match for operator* in '*std::cout.std::basic_ostream<...

我觉得这很奇怪.没有任何std::cout定义会让我相信这会导致任何不同的行为; 另外,明确调用运算符函数没有区别(或至少应该).

那么为什么我得到这个输出?为什么在显式调用运算符时我收到的是地址而不是字符串本身?这甚至是内存中的地址还是垃圾输出?任何回复都表示赞赏.

c++ string iostream operator-overloading

12
推荐指数
2
解决办法
1796
查看次数

是否为包含相同值的范围定义了std :: nth_element?

std :: nth_element的文档中我们得到:

template< class RandomIt >
void nth_element( RandomIt first, RandomIt nth, RandomIt last );
Run Code Online (Sandbox Code Playgroud)

按升序对范围[first,last]进行部分排序,使得[first,nth]范围内的所有元素都小于 [nth,last] 范围内的所有元素.

困扰我的东西是不太字.不应该少或平等吗?如果范围是例如:

#include <algorithm>
#include <vector>
#include <iostream>

int main()
{
    std::vector<int> numbers = {3, 2, 2, 2, 1};
    auto middlePosition = numbers.begin() + 2;
    std::nth_element(numbers.begin(), middlePosition, numbers.end());

    for (int x : numbers)
        std::cout << x << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该算法不能使两个数字middlePosition 小于 2,因为只有一个这样的数字.该算法尽力而为,输出符合要求:

1
2
2 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm c++-standard-library c++11

12
推荐指数
2
解决办法
600
查看次数

什么(~0L)是什么意思?

我正在做一些X11 ctypes编码,我不知道C但需要一些帮助才能理解这一点.

在下面的C代码中(可能是C++我不确定),我们看到(~0L)这意味着什么?在Javascript和Python中~0意味着-1.

812   int result = GetProperty(window, property_name,
813                            (~0L), // (all of them)
814                            &type, &format, &num_items, &properties);
Run Code Online (Sandbox Code Playgroud)

谢谢

c c++ x11 ctypes

12
推荐指数
1
解决办法
6万
查看次数

是(auto&a:a)语法正确吗?

例如,我定义了一个多维数组

array<array<array<int, 3>, 4>, 5> a;
Run Code Online (Sandbox Code Playgroud)

我循环它

for (auto& a : a) 
    for (auto& a : a)
        for (auto& a : a) 
            a = 1;
Run Code Online (Sandbox Code Playgroud)

这是正确的语法吗?我在VS2015中测试过.没有编译错误.

c++ arrays for-loop

12
推荐指数
2
解决办法
827
查看次数