小编Kon*_*lph的帖子

变量地址的运算符[]如何工作?

例如:

int x = 5;
std::cout<<(&x)[0]<<std::endl; -> prints 5
Run Code Online (Sandbox Code Playgroud)

我在一本书中发现了3DVector的这种表示形式:

struct Vector3D{
float x,y,z;
Vector3D() = default;
Vector3D(float a, float b, float c) : x(a), y(b), z(c) {}
float & operator[](int i){
return ((&x)[i]);
}
};
Run Code Online (Sandbox Code Playgroud)

并将其用作:

    Vector3D myVec(0,2,3);
    std::cout<<myVec[0]<<std::endl;
    std::cout<<myVec[1]<<std::endl;
    std::cout<<myVec[2]<<std::endl;
Run Code Online (Sandbox Code Playgroud)

它将打印x,y,z的值

怎么运行的?这安全吗?

c++ overloading operator-keyword

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

最大的 3 个数字代码不适用于特定数字

我是 Python 的初学者。我已经编写了代码来查找 3 个数字中最大的一个,除了作为输入提供的这些数字 100、10、20 之外,这些数字都可以正常工作。我得到的输出是“最大的数字是 20”,但我的期望是“最大的数字是 100”我的代码如下:

a = input("Enter 1st value")
b = input("Enter 2nd value")
c = input("Enter 3rd value")

if (a > b) and (a > c):
    lnum = a

elif (b > a) and (b > c):
    lnum = b

else:
    lnum = c

print("The largest number is", lnum)
Run Code Online (Sandbox Code Playgroud)

谁能帮我理解为什么输出显示最大的是 20 而不是 100?

python

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

导入 openpyxl 时语法无效

Python 2.7.5 (default, Sep 26 2019, 13:23:47)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import openpyxl

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<user>/.local/lib/python2.7/site-packages/openpyxl/__init__.py", line 6, in <module>
    from openpyxl.workbook import Workbook
  File "<user>/.local/lib/python2.7/site-packages/openpyxl/workbook/__init__.py", line 4, in <module>
    from .workbook import Workbook
  File "<user>/.local/lib/python2.7/site-packages/openpyxl/workbook/workbook.py", line 7, in <module>
    from openpyxl.worksheet.worksheet import Worksheet
  File "<user>/.local/lib/python2.7/site-packages/openpyxl/worksheet/worksheet.py", line 396
    return f"{get_column_letter(min_col)}{min_row}:{get_column_letter(max_col)}{max_row}"
Run Code Online (Sandbox Code Playgroud)

是否需要安装任何其他软件包?

任何人都可以让我知道这种行为背后的原因,因为它在 windows 和 macos 上运行良好。

python unix excel redhat openpyxl

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

如何查找数组中的元素个数?

int a[10];
for(int i=0;i<5;i++)
{
   a[i]=i;
}
int len=sizeof(a)/sizeof(int);
print("%d",len);
Run Code Online (Sandbox Code Playgroud)

上面的代码打印10,但实际存在的元素数是5。需要帮助。

如果它是一个字符数组,这不会是一个问题,但这里的整数数组会引起痛苦。

c arrays

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

如何使用指针编写具有可变数量参数的函数?

所以我有一个任务是使用指针编写一个带有可变数量参数的函数“mult”。而这个函数必须计算浮点数的乘积。

我遵循了我们的大学给我们的指南,但我的产品仍然为零。我发现问题是要相乘的每个其他数字都是零。

#include <iostream>


using namespace  std;

int mult(int k,...){
    int* p = &k;
    int m = 1;
    for(; k != 0; k--){
        m *= *(++p);
    }
    return m;
}

int main(){
    float res1 = mult(11,45,10,9,8,7,6,5,4,3,2,2);
    float res2 = mult(7,12,23,0.3,0.6,1,2);
    float res3 = mult(3,0.6,-12,-0.9);
    cout << "Your results are:\n"
         <<res1<<"\n"
         <<res2<<"\n"
         <<res3<<"\n";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

样本输出

以下是指南中的示例:

void Print_stor(int k, ...)
{
 int n=k;
 int a[n];
 int *p = &k;
 for ( ; k!=0;k--)
 a[k-1]=*(++p);
 for(int i=n-1; i>=0; i--)
 printf("%i ", …
Run Code Online (Sandbox Code Playgroud)

c++ variables arguments function

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

为什么我的无效模式没有抛出 PatternSyntaxException?

我想测试一个正则表达式在 Java 1.8.0_241 中是否有效

public static boolean isRegExpValid(String regExp) {
    try {
        Pattern.compile(regExp);
        return true;
    } catch (PatternSyntaxException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在测试三位数的正确正则表达式和不正确的正则表达式。

@Test
public void testValidRegexp() {
    assertTrue(isRegExpValid("\\d{3}"));
}

@Test
public void testInvalidRegexp() {
    assertFalse(isRegExpValid("{3}"));
}
Run Code Online (Sandbox Code Playgroud)

为什么我的第二次测试testInvalidRegexp失败了?isRegExpValid("{3}")应该返回false,但返回true。

在 Javascript 中,{3}正确失败并显示Nothing to repeat异常。 在此处输入图片说明

java regex unit-testing patternsyntaxexception

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

Curve25519公钥是309字节,私钥是587,不应该是32字节吗?

我正在尝试使用 bouncycastle 在我的 java 程序中实现 curve25519,这是我想出的代码:

package crypto;

import org.bouncycastle.asn1.x9.X9ECParameters;
import org.bouncycastle.crypto.ec.CustomNamedCurves;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.jce.spec.ECParameterSpec;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.*;

public class Curve {

    public KeyPair generateKeyPair() throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {
        X9ECParameters ecP = CustomNamedCurves.getByName("curve25519");
        ECParameterSpec ecSpec = new ECParameterSpec(ecP.getCurve(), ecP.getG(), ecP.getN(), ecP.getH(), ecP.getSeed());
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC", new BouncyCastleProvider());
        keyGen.initialize(ecSpec);
        return keyGen.generateKeyPair();
    }

}
Run Code Online (Sandbox Code Playgroud)

而我的主要方法:

package crypto;

import java.nio.charset.StandardCharsets;
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyPair;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class Test_Curve {

    public static …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle diffie-hellman public-key

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

std:hash 可以访问类的私有成员

我想散列一个具有两个私有成员的类,例如:

foo.h

class Foo {
    private:
        std::string a;
        std::string b;

    public:
        Foo (std::string a, std::string b);
        bool operator==(const Foo& other) const;
        bool operator!=(const Foo& other) const;
        std::size_t operator()(const Foo& ) const;
};

namespace std {
    template <> struct hash<Foo> {
        std::size_t operator()(const Foo& cp) const;
    };
}
Run Code Online (Sandbox Code Playgroud)

文件

Foo::Foo (std::string _a, std::string _b) {
    this->a = _a;
    this->b = _b;
}

bool Foo::operator== (const Foo& other) const {
    return this->a == other.a && this->b == other.b;
}

bool Foo::operator!= (const …
Run Code Online (Sandbox Code Playgroud)

c++ stdmap stdset c++11 stdhash

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

如何避免我非常大的嵌套 for 循环?

我必须使用物理公式来实现一些模拟。在一个公式中,有许多变量。我想用 100 个样本改变这些变量。对于每个样本,我必须使用所有组合进行计算。简化的 for 循环更好地解释了我想要做什么:

set.seed(3)
a = rnorm(100)
b = rnorm(100)
c = rnorm(100)
d = rnorm(100)
f = rnorm(100)

for (a in 1:length(a)) {
        
        for (b in 1:length(b)) {
                
                for (c in 1:length(c)) {
                        
                        for (d in 1:length(d)) {
                                
                                for (f in 1:length(f)) {
                                        
                                        value = a + b / c * d - f # for illustrative purposes only
                                        # .... 
                                        # ... then I append the value to a vector etc.
                                        
                                }
                                
                        }
                        
                }
                
        }
        
} …
Run Code Online (Sandbox Code Playgroud)

loops for-loop r nested-loops

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

使用最小和最大日期计算值差

我正在尝试使用最小日期和最大日期来计算价值增长/下降。我的数据目前如下所示:

    Code      Date        Value
0   A         2020-12-31  80122.0
1   A         2019-12-31  45472.0
2   A         2018-12-31  31917.0
3   A         2017-12-31  23432.0
4   B         2020-12-31      0.0
Run Code Online (Sandbox Code Playgroud)

对于代码 AI 需要保留最大(2020-12-31)和最小(2017-12-31)日期以及值,以便我稍后可以计算差异。我有多个代码,并且需要能够对每个代码应用相同的逻辑。关于解决这个问题的最佳方法有什么建议吗?

谢谢

python pandas

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