小编Mer*_*sud的帖子

为什么处理排序数组比处理未排序数组更快?

这是一段看似非常特殊的C++代码.出于某种奇怪的原因,奇迹般地对数据进行排序使得代码几乎快了六倍.

#include <algorithm>
#include <ctime>
#include <iostream>

int main()
{
    // Generate data
    const unsigned arraySize = 32768;
    int data[arraySize];

    for (unsigned c = 0; c < arraySize; ++c)
        data[c] = std::rand() % 256;

    // !!! With this, the next loop runs faster.
    std::sort(data, data + arraySize);

    // Test
    clock_t start = clock();
    long long sum = 0;

    for (unsigned i = 0; i < 100000; ++i)
    {
        // Primary loop
        for (unsigned c = 0; c < arraySize; ++c) …
Run Code Online (Sandbox Code Playgroud)

c++ java optimization performance branch-prediction

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

在CSS Flexbox中,为什么没有"justify-items"和"justify-self"属性?

考虑flex容器的主轴和横轴:

在此输入图像描述                                                                                                                        资料来源:W3C

要沿主轴对齐flex项,有一个属性:

要沿横轴对齐flex项,有三个属性:

在上图中,主轴是水平的,横轴是垂直的.这些是Flex容器的默认方向.

但是,这些方向可以很容易地与flex-direction财产互换.

/* main axis is horizontal, cross axis is vertical */
flex-direction: row;
flex-direction: row-reverse;

/* main axis is vertical, cross axis is horizontal */    
flex-direction: column;
flex-direction: column-reverse;
Run Code Online (Sandbox Code Playgroud)

(横轴始终垂直于主轴.)

我在描述轴的工作方式时的观点是,任何一个方向似乎都没有什么特别之处.主轴,横轴,它们在重要性方面都是相同的,并且flex-direction可以方便地来回切换.

那么为什么横轴有两个额外的对齐属性呢?

为什么align-content并且align-items合并为主轴的一个属性?

为什么主轴没有justify-self属性?


这些属性有用的场景:

  • 将flex项放在flex容器的角落
    #box3 { align-self: flex-end; justify-self: flex-end; }

  • 制作一组flex项目align-right(justify-content: flex-end)但是让第一个项目对齐left(justify-self: flex-start)

    考虑带有一组导航项和徽标的标题部分.随着justify-self徽标可以左对齐,而导航项目保持最右边,整个事物平滑地调整("弯曲")到不同的屏幕尺寸.

  • 在一排三个柔性物品中,将中间物品粘贴到容器的中心(justify-content: center)并将相邻的物品对齐到容器边缘(justify-self: flex-start …

css w3c language-lawyer flexbox

602
推荐指数
3
解决办法
14万
查看次数

#include <bits/stdc ++.h>如何在C++中工作?

我从读codeforces博客,如果我们#include <bits/stdc++.h>在一个C++程序那么就没有必要包括任何其他的头文件.如何#include <bits/stdc++.h>工作,是否可以使用它而不是包括单独的头文件?

c++ gcc g++ c++11

108
推荐指数
4
解决办法
13万
查看次数

如何使C++ cout不使用科学记数法

double x = 1500;
for(int k = 0; k<10 ; k++){
    double t = 0;
    for(int i=0; i<12; i++){
        t += x * 0.0675;
        x += x * 0.0675;
    }
    cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;      
}
Run Code Online (Sandbox Code Playgroud)

这个输出

Bas ana:3284.78 Son faiz:1784.78 Son ana:5069.55

Bas ana:7193.17 Son faiz:3908.4 Son ana:11101.6

Bas ana:15752 Son faiz:8558.8 Son ana:24310.8

Bas ana:34494.5 Son faiz:18742.5 Son ana:53237

Bas ana:75537.8 Son faiz:41043.3 Son ana:116581

Bas ana:165417 Son faiz:89878.7 Son ana:255295

Bas ana:362238 Son faiz:196821 Son …

c++ double cout scientific-notation ostream

59
推荐指数
4
解决办法
7万
查看次数

在puppet中管理linux的用户密码

我需要使用puppet创建一个带密码的测试用户.

我已经读过,木偶无法以通用的跨平台方式管理用户密码,这很可惜.我正在为Red Hat Enterprise Linux Server 6.3版做这个.

我这样做:

user { 'test_user': 
  ensure   => present,
  password => sha1('hello'),
}
Run Code Online (Sandbox Code Playgroud)

puppet更新了用户的密码,但Linux在我尝试登录时说login/pwd不正确.

如果我在Linux中手动设置密码sudo passwd test_user,然后/etc/shadow在puppet中查看并硬编码该值,它可以工作(我可以登录).就像是:

user { 'test_user': 
  ensure   => present,
  password => '$1$zi13KdCr$zJvdWm5h552P8b34AjxO11',
}
Run Code Online (Sandbox Code Playgroud)

我也试过$1$在前面添加sha1('hello'),但它也不起作用(注意,$1$代表sha1).

如何修改第一个例子使其工作(使用puppet文件中的明文密码)?

ps:我知道我应该使用LDAP或sshkeys或其他东西,而不是在puppet文件中硬编码用户密码.但是,我这样做只是为了运行puppet vagrant测试,所以可以硬编码用户密码.

linux puppet

36
推荐指数
4
解决办法
5万
查看次数

如何确定三元运算符的返回类型?

我正在解决有关主教在棋盘上移动的问题。在代码的某一时刻,我有以下语句:

std::cout << (abs(c2-c1) == abs(r2-r1)) ? 1 : 2 << std::endl;
Run Code Online (Sandbox Code Playgroud)

这将产生以下错误:

error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
Run Code Online (Sandbox Code Playgroud)

但是,我通过在代码中包含一个附加变量来立即修复此错误:

error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
Run Code Online (Sandbox Code Playgroud)

三元运算符如何工作,以及如何确定其返回类型(如编译器称为<unresolved overloaded function type>)?

c++ ternary-operator operator-precedence

32
推荐指数
4
解决办法
3882
查看次数

Python的writelines()和write()存在巨大的时差

我正在编写一个脚本来读取文件夹(每个文件大小从20 MB到100 MB),修改每行中的一些数据,然后写回文件的副本.

with open(inputPath, 'r+') as myRead:
     my_list = myRead.readlines()
     new_my_list = clean_data(my_list)
with open(outPath, 'w+') as myWrite:
     tempT = time.time()
     myWrite.writelines('\n'.join(new_my_list) + '\n')
     print(time.time() - tempT)
print(inputPath, 'Cleaning Complete.')
Run Code Online (Sandbox Code Playgroud)

在使用90 MB文件(~900,000行)运行此代码时,它将打印140秒作为写入文件所需的时间.在这里我用过writelines().所以我搜索了不同的方法来提高文件写入速度,在我阅读的大多数文章中,它说write()并且writelines()不应该显示任何差异,因为我正在编写单个连接字符串.我还检查了以下声明所花费的时间:

new_string = '\n'.join(new_my_list) + '\n'
Run Code Online (Sandbox Code Playgroud)

它只花了0.4秒,所以花费的大量时间并不是因为创建列表.试试看write()我试过这段代码:

with open(inputPath, 'r+') as myRead:
     my_list = myRead.readlines()
     new_my_list = clean_data(my_list)
with open(outPath, 'w+') as myWrite:
     tempT = time.time()
     myWrite.write('\n'.join(new_my_list) + '\n')
     print(time.time() - tempT)
print(inputPath, 'Cleaning Complete.')
Run Code Online (Sandbox Code Playgroud)

它打印2.5秒.为什么文件写入时间有这么大的差异write(),writelines()即使它是相同的数据?这是正常行为还是我的代码中有问题?对于这两种情况,输出文件似乎都是相同的,所以我知道数据没有丢失.

python performance file file-writing

30
推荐指数
2
解决办法
8552
查看次数

使用Heroku的分支策略进行良好的Git部署?

与Git + Heroku(Ruby on Rails)一起使用的优秀部署策略是什么?

目前我使用我的原始Git存储库的方式:所有功能(或"故事")首先作为分支检出,然后与master合并并推送到原点.

推送到origin/master的任何东西都会触发一个脚本,将新的rails代码拉到临时区域(简单的rails webserver).

当我需要将新的生产版本推送到Heroku时,我应该创建一个新的分支(称为类似于production_version_121),并以某种方式将其推送到Heroku?

理想情况下,我想选择我应该包含在生产分支中的先前开发版本中的哪些功能...测试它,并推送到Heroku.

例如,我可能不希望所有最新代码都被推送到生产中.我可能想要我曾经使用的功能"a"和功能"c"都以某种方式合并到制作中,而不包括需要更多调试的实验性功能"b".

NB我首先要尝试避免使用capistrano并立即手动工作.

思考?最佳实践?

git deployment ruby-on-rails heroku

28
推荐指数
3
解决办法
9281
查看次数

HTML宽度/高度属性与img元素上的CSS width/height属性有什么区别?

HTML <img>元素可以具有width/height属性,并且还可以具有CSS width/height属性.

<img src="xxx.img" width="16" height="16"
style="width: 16px; height: 16px"></img>
Run Code Online (Sandbox Code Playgroud)

HTML属性和CSS属性之间的区别是什么?它们是否具有相同的影响?

html css tags properties

25
推荐指数
3
解决办法
9899
查看次数

使用mongoimport导入多个json文件

我是新手mongodb,想知道json从一台服务器导入文件到另一台服务器.我尝试了以下命令mongoimport -d test -c bik check.json,它对我来说很好.现在我想知道什么时候有多个json文件我如何一次性导入所有这些文件.我找不到任何相关的文件,这是不可能的.请帮助我这是可能的以及如何

json mongodb mongoimport

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