小编mar*_*zzz的帖子

指针"如何获知"指向对象的哪个部分可以访问?

基本示例:

class Base
{
public:
    double mValue = 10.0;
};

class Derived: public Base
{
public:
    double mAdditionalValue = 20.0;
};

int main()
{
    Derived derived;
    Base *rBase = &derived;
    std::cout << "value " << rBase->mValue << '\n';
    std::cout << "additionalValue " << rBase->mAdditionalValue << '\n';
}
Run Code Online (Sandbox Code Playgroud)

显然我无法访问mAdditionalValuevia,rBase因为引用类型(Base)不是Derived,并且不包含被调用的成员mAdditionalValue.太好了!智能机制!但实际上这是用C++实现的?

我的意思是:rBase无论如何指向一个类型的对象Derived,并在内存中存储它mAdditionalValue(我已创建它).所以它指向整个对象.它可以"物理"访问该数据.

谁"阻止/限制"指针范围的可访问性?它在指针的逻辑内(所以是软件实现)还是编译器在编译阶段,捕获它并阻止操作?那会怎么做?检查内存地址并限制它们?

c++ polymorphism inheritance pointers

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

为什么GetType()无法识别此类型?

这是代码:

public class Program
{
    public static void Main(string[] args)
    {
       Test test = new Test();
    }
}

public class Test
{
    public Test() {
        Console.WriteLine("type: " + Type.GetType("Registration"));        
    }
}

public class Registration
{
    public int mAge;
    public string mName;

    public Registration() {}
}  
Run Code Online (Sandbox Code Playgroud)

当它尝试获取类型时Registration,它返回null.所以,两种.Name.AssemblyQualifiedName无法访问.

AssemblyQualifiedName只有GetType()不退货我才能提供null.

为什么GetType()返回null?希望问题很清楚.

c# types

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

Bootstrap 4.0.0 未能通过 W3C 验证?

我正在制作的应用程序遇到问题,该应用程序试图缩小我的整个.css文件。

似乎在正常.min版本上都bootstrap未能通过W3C验证。

关于这个问题的任何线索?

css w3c w3c-validation bootstrap-4

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

不能std :: shuffle?

代码是基本的:

#include <iostream>
#include <vector>
#include <random>
#include <chrono>
#include <algorithm>

int main(int argc, const char *argv[]) {
    std::vector<int> mSet = { 1, 2, 3, 4 };

    auto timeSeed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
    std::seed_seq ss{ uint32_t(timeSeed & 0xffffffff), uint32_t(timeSeed >> 32) };
    std::mt19937_64 rng;
    std::shuffle(mSet.begin(), mSet.end(), rng);

    for (size_t i = 0; i < mSet.size(); i++) {
        std::cout << mSet[i] << " ";
    }
}
Run Code Online (Sandbox Code Playgroud)

它总是向我显示相同的序列.我哪里错了?

c++ random stdvector

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

如何使用SSE2处理exp()?

我正在制作一个基本上利用SSE2优化此代码的代码:

double *pA = a;
double *pB = b[voiceIndex];
double *pC = c[voiceIndex];

for (int sampleIndex = 0; sampleIndex < blockSize; sampleIndex++) {
    pC[sampleIndex] = exp((mMin + std::clamp(pA[sampleIndex] + pB[sampleIndex], 0.0, 1.0) * mRange) * ln2per12);
}
Run Code Online (Sandbox Code Playgroud)

在这:

double *pA = a;
double *pB = b[voiceIndex];
double *pC = c[voiceIndex];

// SSE2
__m128d bound_lower = _mm_set1_pd(0.0);
__m128d bound_upper = _mm_set1_pd(1.0);
__m128d rangeLn2per12 = _mm_set1_pd(mRange * ln2per12);
__m128d minLn2per12 = _mm_set1_pd(mMin * ln2per12);

__m128d loaded_a = _mm_load_pd(pA);
__m128d loaded_b = _mm_load_pd(pB); …
Run Code Online (Sandbox Code Playgroud)

c++ simd intrinsics sse2 exp

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

如何快速从文件夹树中选择随机文件?

我试图从文件夹树中选择一个随机文件,从固定路径开始,然后在所有子文件夹(或选定的文件夹本身)中递归“搜索”。

我的想法是:制作文件列表,计算文件数,在此范围内选择一个随机数,然后选择该索引处的文件。

这是我的代码:

// create list of all files
std::vector<std::string> paths;

for (const auto &entry : std::filesystem::recursive_directory_iterator(mPathDirectory)) {
    if (!std::filesystem::is_directory(entry)) {
        paths.push_back(entry.path().string());
    }
}

// pick random file
size_t numberOfFiles = paths.size();
int indexRandomFile = (int)round(rescale(random::uniform(), 0.0, 1.0, 0, numberOfFiles - 1));

return paths[indexRandomFile];
Run Code Online (Sandbox Code Playgroud)

另外O3,考虑到我有很多文件,并且在“音频”应用程序中(应该更快),它的运行速度非常慢。

您有更聪明的主意吗?像O(1)这样的东西?:P

c++ random performance file

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

PHP上传图像表单+通过GD库调整大小.但它失败超过8mb

我制作一个从POST 4图像接收的PHP脚本,而不是存储它们并创建拇指trought GD php库.问题是,只有当我每张4张4张照片(或每张4张2张或更少,实际上最多8 mb)时才能正常工作.为什么?我检查memory_limit(64mb),upload_max_filesize(25mb)和max_file_uploads(120secs)的值,​​如果我增加它们,没有任何反应.

看来POST数组完全被忽略了:我看到了这个因为我在php脚本上加了一些"echo".代码如上:

if(($_FILES['userfile1']['tmp_name']!="") or ($_FILES['userfile2']['tmp_name']!="") or ($_FILES['userfile3']['tmp_name']!="") or ($_FILES['userfile4']['tmp_name']!="")) {
    // JPG/JPEG, max 4mb each
    for($i=1; $i<=4; $i++) {
        if ($_FILES['userfile'.$i]['tmp_name']!="") {
            $path_parts=pathinfo($_FILES['userfile'.$i]['name']);
            if(((strtolower($path_parts['extension'])=='jpg') or (strtolower($path_parts['extension'])=='jpeg')) 
            && ($_FILES['userfile'.$i]['size']<=4194304)) {
            } else {
                $wrong=1;
            }
        }
    }

    if(isset($wrong)) {
        $abort=1;
        $messaggio="Errore - Formato delle foto non valido. Assicurati che il formato sia jpg/jpeg e che la foto non superi i 3 Megabyte";
    } else {
        mkdir("./articles/photos/".$articleid);
        mkdir("./articles/photos/thumbs/".$articleid);
        $sql="";
        for($i=1; $i<=4; $i++) {
            if ($_FILES['userfile'.$i]['tmp_name']!="") {
                $photoid=$articleid."-".$i;
                $uploaddir="./articles/photos/".$articleid."/"; …
Run Code Online (Sandbox Code Playgroud)

php gd file-upload

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

GWT - ListBox - 当我得到所选项目的索引时出现问题

我在GWT上有这个ListBox(ComboBox):

final ListBox category_2=new ListBox();
category_2.setStyleName("article_combo");
category_2.addItem("----------", "0");
category_2.addItem("1° Element", "1");
category_2.addItem("2° Element", "2");
category_2.addItem("----------", "0");
category_2.addItem("3° Element", "3");
category_2.addItem("4° Element", "4");
category_2.addItem("----------", "0");
category_2.addItem("5° Element", "5");
category_2.addItem("----------", "0");
category_2.addItem("6° Element", "6");
category_2.addItem("7° Element", "7");
category_2.addItem("8° Element", "8");
Run Code Online (Sandbox Code Playgroud)

如果我试图获得所选择的身份的索引

category_2.getSelectedIndex()
它返回给我class_2的索引(但它反映了数组索引,而不是我设置的索引).

示例:如果我选择5°元素,它不会返回"5",而是"7".我怎样才能获得自己设定的索引?干杯

gwt listbox

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

Jquery - .click()不会滚动页面

我要在这样的jQuery上创建一个函数:

$(document).ready(function() {
    $('#header_rules').click(function() {
      // here i define myFunction()
    });
});

<a id="header_rules" href="#">RULES</a>
Run Code Online (Sandbox Code Playgroud)

代替

 <a id="header_rules" href="#" onClick="myFunction();return false">RULES</a>
Run Code Online (Sandbox Code Playgroud)

但我不知道在有人点击链接后如何使用jQuery阻止滚动到页面顶部.

事实上,我将完全摆脱本机JS,这可能会产生一些麻烦(这就是为什么我使用像jQuery这样的JS框架).

有帮助吗?干杯

javascript jquery unobtrusive-javascript

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

PHP - mb_strlen的问题

如果字符串长度大于30,我想将"值"推入"数组".所以我已经完成了这个PHP脚本:

if(!mb_strlen($string, 'utf-8')<=30) array_push($array, "value");
Run Code Online (Sandbox Code Playgroud)

但是,如果字符串小于31,它也会推动该值......为什么?

php string

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