小编jin*_*wan的帖子

为什么`&array`和`array`指向同一个地址?

到现在为止,我认为数组与指针相同.但我发现了一个奇怪的案例:

int array[5] = { 10,11,12,13,14};

std::cout << array << std::endl;
std::cout << &array << std::endl;
std::cout << &array[0] << std::endl;

int *pArray = new int[5];

std::cout << pArray << std::endl;
std::cout << &pArray << std::endl;
std::cout << &pArray[0] << std::endl;
Run Code Online (Sandbox Code Playgroud)

产量

0x7ffeed730ad0
0x7ffeed730ad0
0x7ffeed730ad0

0x7f906d400340
0x7ffeed730a30
0x7f906d400340
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,array并且&array具有相同的价值.但是pArray并且&pArray有不同的价值.如果数组与指针相同,则数组的地址应与数组不同.怎么可能array&array是一样的?如果array&array相同,保存数组值的内存的地址是什么?

c++ arrays pointers

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

我如何直观地在vim中移动光标?(不是按行)

如果某些行太长,它将被强制换行.

例如,通常一条长线看起来像这样

1 first line
2 this is the long second line of the file
3 third line.
Run Code Online (Sandbox Code Playgroud)

但是,如果vim的窗口太窄,它将会是这样的

1 first line
2 this is the long
  second line of the file
3 third line
Run Code Online (Sandbox Code Playgroud)

问题来自于此.

让我们假设vim光标位于'第三行'中't'之前.如果我输入"k",光标将移动到"文件的第二行"中的"s"之前.之后,如果我再次输入'k',光标将在'first line'中移动到'f'!而不是't'在'这是长'中.我想要的是光标在'这是长'中移动到't',这对我来说是更直观的过程.如何设置我的vim这样的工作?

vim

14
推荐指数
2
解决办法
5048
查看次数

实例的python成员变量就像成员变量一样,有些像静态变量一样工作

我是python新手,类的成员变量在我的python代码中工作很奇怪.有些像普通变量一样工作,但有些像静态变量一样工作!

class Chaos:
    list_value = []
    value = "default"

    def set_value(self, word):
        self.list_value.append(word)
        self.value = word 

    def show(self, num):
        print(str(num) + "====")
        print("value : " + self.value)
        for st in self.list_value:
            sys.stdout.write(st)
        print("\n=====\n")

a = Chaos()
a.show(0)
a.set_value("A")
a.show(1)
b = Chaos()
a.show(2)
b.show(3)
Run Code Online (Sandbox Code Playgroud)

结果

0====
value : default

=====

1====
value : A
A
=====

2====
value : A
A
=====

3====
value : default
A
=====
Run Code Online (Sandbox Code Playgroud)

但是测试的最后结果与我在上次测试中的预期不同.'b'实例的'list_value'中不应该有"A".它刚刚创建,从未添加过"A".我在'a'的实例中加了'A',而不是'b'.但结果表明,'b'中也有'A'更多,类中的'list_value'和'value'的工作方式不同.看起来两者都有相同的语法.为什么他们的工作不同?

python

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

重命名Keras张量名称以实现损失函数

keras张量有简单的重命名吗?我需要它在某些情况下为张量提供更合适的名称。

当我编译具有多个输出或输入的模型时,该模型需要输入或输出张量的名称。例如,下面的模型需要名称“ advc_out_tn”和“ atoz.output”。

advc_out_tn = self.advc_model(atoz.output)

self.advc_atoz_model = Model(input=atoz.input, output=[advc_out_tn, atoz.output])
self.advc_atoz_model.compile(optimizer='adam', loss="binary_crossentropy", loss_weights={"advc_out_tn":1.0, "atoz_out_tn":1.0})
Run Code Online (Sandbox Code Playgroud)

但这给了我错误,因为它们不是真实姓名。

ValueError: Unknown entry in loss_weights dictionary: "atoz_out_tn". Only expected the following keys: ['model_2', 'concat_decoded_img']
Run Code Online (Sandbox Code Playgroud)

但是张量的真实名称有些笨拙。特别是如果我使用给定的模型(在这种情况下为atoz)并通过“ .out”访问其输出张量,则会给出最后一层的名称(“ concat_decoded_img”),而不是模型的名称。

我该如何解决?

keras

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

在python中打印"====中间对齐标题===="的优雅方式

据我所知,有一些优雅的方法可以打印左右对齐的字符串.像这样

str = "left_justified"
str.ljust(20, '0');
Run Code Online (Sandbox Code Playgroud)

要么

print "{0:{1}<20}".format(str, "=")
Run Code Online (Sandbox Code Playgroud)

结果将是

left_justified=====
Run Code Online (Sandbox Code Playgroud)

打印中间对齐字符串的最佳方法是什么?

python

3
推荐指数
2
解决办法
2631
查看次数

布尔运算符如何处理python中的字符串

True and "asdf" or "qwer"
Run Code Online (Sandbox Code Playgroud)

结果 => "asdf"

False and "asdf" or "qwer"
Run Code Online (Sandbox Code Playgroud)

结果 => "qwer"

我无法理解这些东西是如何运作的。我认为字符串上的布尔运算符会导致类型错误,但事实并非如此。它是否类似于预定义语句,例如“a if b else c”?

python

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

在很短的时间内连接非常大的(〜TByte)文件

首先,我想解释一下为什么我需要这个。我需要为虚拟机创建一些磁盘映像文件。该文件将是巨大的(100GB〜1.5TB)文件,其中填充了零。应该在很短的时间内创建它(尽可能多,至少应该比带有“ / dev / zero”的“ dd”命令要快)。需要的大小将是多种多样的(这意味着我以前无法创建它)。一个简单的解决方案(直到知道)是将文件创建为稀疏文件。但是为什么我要更改解决方案是稀疏文件的某种缺点。

在我看来,可以通过直接编辑inode来解决。我的想法是创建一个非常大的文件,该文件将填充零并按inode级别进行划分。或者,我可以创建许多100 GB的文件,然后再将这些文件连接起来以创建所需的文件大小。我知道“ debugfs”可以编辑inode的直接块。由于“ debugfs”用于文件恢复,也许我可以用它来创建文件。但直到现在我都找不到如何编辑inode的间接块。除了编辑间接块之外,我不确定直接编辑inode的副作用。

无论如何,是否有任何很酷的解决方案或工具(如果有)用于“缝制”大文件或创建零填充文件?“猫”命令或其他仅读写解决方案可能无法解决我的问题。

linux filesystems file

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

标签 统计

python ×3

arrays ×1

c++ ×1

file ×1

filesystems ×1

keras ×1

linux ×1

pointers ×1

vim ×1