RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-20380

ampawd's questions

Martin Hope
ampawd
Asked: 2020-01-20 01:58:31 +0000 UTC

关于具有静态数据的专业化和模板类的问题

  • 5

假设我们有一个模板类:

template<typename T>
class X
{
public:
    static T t;
    static T foo()
    {
        return t;
    }
};

这样的静态成员初始化有什么区别t

double X<double>::t = 5.0f;

以及类专业化(或静态成员!?)的此类初始化?

template<>
double X<double>::t = 5.0f;
c++
  • 2 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-12-24 05:04:36 +0000 UTC

指向数组的指针的微妙之处

  • 6

众所周知,如果没有运算符,sizeof则可以计算数组元素的个数,例如,像这样:

int arr[10];
size_t size = *(&arr + 1) - arr;

在哪里

arr是指向第一个元素的指针

&arr有一个指向整个数组的指针

&arr + 1在我们的数组之后有一个指向下一块内存的指针

*(&arr + 1)是数组最后一个元素之后的元素的地址。

因此,指针的差异给出了它们之间的元素数量。

问题:

  1. 这不会*(&arr + 1)导致UB?

  2. 如何&arr有指向整个数组的指针?它是由标准定义的吗?

c++
  • 2 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-06-16 04:16:28 +0000 UTC

了解算术表达式中未定义行为的位置

  • 15

这是一个经常讨论的话题,但我还是想更具体地了解它在UB哪里,不在哪里。

下面是几个例子,我的想法是:

int i = 0, x = 1;
int a[6] = {0, 0, 0, 0, 0, 0};

i = ++i + ++i; // UB
i = i++ + ++i; // UB
x = i++ + ++i; // ?? я думаю что UB 
x = i++ + i++; // OK
a[i] += i++;   // OK ??
a[++i] = i++;  // UB ??
a[++i] = ++i   // UB
i += ++i;      // UB
j += j;        // OK

一直以来,我都澄清了一个规则——如果在一个表达式中,对象的值改变了不止一次——UB纯水,也就是说,很明显,在某些平台上可以而且将会发生预期的事情,但问题是这种情况下的标准不保证任何东西——也就是说,它要么说它是undefined behavour,unspecified behavour要么implementation defined behavour。

问题是 - 这些示例中是否还有其他情况UB?

c++
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-05-21 21:41:52 +0000 UTC

难以理解的公式及其结果

  • 3

任务是找到函数的值

在此处输入图像描述

对于一组无序的 128 位数字,Ak每个数字表示为

Ak = 2^96 * a1k + 2^64 * a2k + 2^32 * a3k + 2^0 * a4k,

在哪里

0 <= aik <= 2^32 - 1

a log10(X)是数的十进制对数的整数部分X,

我们假设log10(0) = 0

一个N <= 5000

例子:

2            // N - кол-во чисел этого набора
0 0 0 2324   // коеффициенты aik для текущего Ak
0 2332 0 0

总和值 - 44

问题:

  1. 在这个例子中你是如何得到 44 的?
  2. 在这种情况下,一组无序的数字意味着什么?
  3. 目前尚不清楚索引是如何在数量上发生的——据我所知k != j??因为如果它相等那么将数字与自身进行异或运算的意义何在,因为它也会给出0从零开始的对数0

实际上,对于这个例子,我得到了以下信息

    A0 - 0 0    0 2324
    A1 - 0 2332 0 0

    A0 XOR A1 = 0 2332 0 2324

    тогда X = 2^96*0 + 2^64+2332 + 2^32*0 + 2^0+2324 = 4.301780718×10²² 
    но отсюда log10(X) != 44 

我究竟做错了什么 ?

产生 44 的正确算法是什么?

c++
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-05-13 04:46:34 +0000 UTC

什么情况下等边三角形可以放在正方形里?

  • 3

假设有一个边长为 的正方形a和一个边长为 的等边三角形b。

让我们将正方形想象成地面上的一种孔区域,平面形状可以下降到其中(在我们的例子中是等边三角形)。

这个三角形在什么情况下可以放在里面呢?

刻字的规则绝对是任意的,而三角形可以在空间中任意旋转和移动。

алгоритм
  • 4 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-04-02 05:01:00 +0000 UTC

奇怪的语法

  • 7

这段代码是如何工作的还不清楚

int a[] = {4, 5, 2, 3, 1};
int i = *a;

for (;i;)
{
    std::cout << i--[a];  // не понятная строчка
}

//  output: 1325

减量适用于什么?

i好吧,很明显,一旦循环结束,变量。

但是如何访问数组元素呢?为什么没有编译错误?

人生第一次遇到这样的代码

c++
  • 2 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-03-18 21:37:42 +0000 UTC

使用哪个QT技术/特性/工具来显示二维图形

  • 1

需要将二维图形(最多 500 万个实点)显示为曲线。

就渲染性能而言,Qt 中的哪个工具适合?

我正在考虑使用它QGraphicsView,QGraphicsScene但我不确定渲染的能力和速度

它使用硬件加速吗?

还是在 CPU 端呈现?

当然,作为一个 lobogo 选项,你可以直接渲染图形通过raw OpenGL API

但我不想做得太过分,也不想让一切都过于复杂,而是通过最佳解决方案来解决。

附言

根本不考虑为显示图形而锐化的现成选项/组件,因此不提供它们

c++
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-03-15 03:50:58 +0000 UTC

确定线可见性

  • 1

N原点分别在平面上的给定线段(0, 0),其位置绝对可以是任意的

最后一段将被称为红色。

需要判断红色线段是否从该点可见,(0, 0)或者是否被遮挡(被其他线段/线段覆盖)。

为清楚起见,图片:

在此处输入图像描述

在这里你可以看到,如果 1 或 2 是红色,那么它们是可见的;(0, 0) 如果红色是 3 或 4,那么它们是不可见的

实际上,我的解决方案 (O(N)) 如下:

由red红色(最后)段表示,由red.start和red.end表示红色的相应末端,然后如果至少有一个段

(0, 0), (red.start)并且(0, 0), (red.end)不与任何非红色线段相交,则从原点可见,否则不可见。

也就是说,问题被简化为正确定义线段的交集。

总的来说,我实现了它——一切正常(如果有兴趣我可以展示代码)。

对其他算法的工作原理感兴趣,例如,在对数时间内?或者对于线性但采用不同的方法?

编辑

原来这个算法是不正确的,没有考虑到红色段左右部分闭合,中间可见的情况

c++
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-03-10 05:04:19 +0000 UTC

在不实例化类型的情况下调用非静态方法是安全的

  • 1

考虑以下 C++03 标准的代码:

struct A
{
    A() { cout << "A()" << endl; }
    ~A() { cout << "~A()" << endl; }

    void foo() { cout << "foo()" << endl; }
};

int main(int argc, char** argv)
{
    A* pa = (A*)0;

    pa->foo();

    return 0;
}

编译和运行得很好。

出现了以下问题:

1)为什么程序会因为方法的虚拟版本而foo崩溃?

2)如何使用C++11安全调用非静态方法foo,使方法foo有效传递this,从而避免UB使用时?

c++
  • 4 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-02-21 22:55:10 +0000 UTC

关闭问题

  • 2

最近接触js不多,所以忘记了很多东西,现在碰到一个看似微不足道的任务。

函数的主体应该是什么,以便输出与代码中的注释相同

var summator = function(val) {
   //
};

console.log(summator(1)); // 1
console.log(summator(5)); // 6
console.log(summator(3)); // 9

直到我做出一个相当集体农场的决定

var summator = function(val) {
  if (typeof summator.sum === 'undefined')
    summator.sum = 0;

  summator.sum += val;

  return summator.sum;
};

如何写闭包?

javascript
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-11-29 22:51:21 +0000 UTC

C++中的匿名类

  • 12

这段代码编译得很好。

class 
{ 
   public:
   //...
} anonymous;

为什么以及出于什么目的使用未命名的类?

c++
  • 2 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-11-25 03:42:48 +0000 UTC

为什么 shared_ptr 不允许隐式指针转换?

  • 6

此代码无法编译:

std::shared_ptr<MyType> pi = new MyType[5];

相反,由于声明了构造函数shared_ptr,explicit您必须编写:

std::shared_ptr<MyType> pi(new MyType[5]);

至少我觉得不方便。

这样设计的原因是什么?

这有什么好处?

c++
  • 3 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-11-12 05:34:51 +0000 UTC

关于表达式评估的顺序

  • 8

我想了解在一般情况下哪些规则决定了表达式值的评估顺序。

假设有这样的代码

int readValue()
{
  int v;
  cin >> v;
  return v;
}

int main()
{
  cout << readValue() << ' ' << readValue() << '\n';
  return 0;
}

如您所知,移位运算符是从左到右计算的-但是当您输入1 2输出时2 1(Microsoft的编译器),这是什么原因?

这段代码是生成undefined behaviour还是只是输出顺序未定义?

如果你删除阅读代码——一切都是可以预见的

int readValue(int v)
{
  return v;
}

int main()
{
  cout << readValue(1) << ' ' << readValue(2) << '\n';
  return 0;
}

结论 -1 2

怎么了 ?

c++
  • 3 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-11-01 21:13:52 +0000 UTC

使用 lambda 的代码无法编译 - 类型为“const std::mt19937”的表达式会丢失一些 const-volatile 限定符

  • 1

我有这段代码(简化):

void make() 
{
    std::random_device rd;
    std::mt19937 generator(rd());
    std::uniform_real_distribution<double> distribution(this->min, this->max);

    const auto graphFunc = [this, generator, distribution](double x) -> double
    {
        return distribution(generator);
    };

    // ... use graphFunc
}

给出以下编译错误:

具有类型 'const std::mt19937' 的错误 C3848 表达式将丢失一些 const-volatile 限定符以调用 'unsigned int std::mersenne_twister<_Ty,32,624,397,31,2567483615,11,7,2636928640,15,4022730752,18 >::运算符 ()(void)' \microsoft visual studio 14.0\vc\include\random 316

对象rd的复制构造函数和赋值被声明为删除,从代码判断random.h

random_device(const random_device&) = delete; random_device& operator=(const random_device&) = delete;

跟上面的代码有关系吗?- 在我看来它有,因为当generator复制到 lambda 时,它还必须调用rd被删除对象的复制构造函数

那么解决方法是什么?

这个编译错误的本质是什么?

c++
  • 1 个回答
  • 10 Views
Martin Hope
ampawd
Asked: 2020-09-17 04:24:24 +0000 UTC

改变外矩形后求内矩形的尺寸

  • 2

这个任务本质上很简单(或者在我看来可能很简单),但出于某种原因,到目前为止我还不能想出任何算法。通常,您需要找到另一个尺寸任意变化的内部矩形包含的新尺寸。

外部和内部矩形的尺寸以及外部变化的幅度是已知的。没有一个矩形是旋转的——也就是说,所有矩形的边总是相互平行的。

为了澄清,我将举例说明 在此处输入图像描述

有哪些解决方案?

алгоритм
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5