这是一段看似非常特殊的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) 考虑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 …
我从读codeforces博客,如果我们#include <bits/stdc++.h>在一个C++程序那么就没有必要包括任何其他的头文件.如何#include <bits/stdc++.h>工作,是否可以使用它而不是包括单独的头文件?
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 …
我需要使用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测试,所以可以硬编码用户密码.
我正在解决有关主教在棋盘上移动的问题。在代码的某一时刻,我有以下语句:
std::cout << (abs(c2-c1) == abs(r2-r1)) ? 1 : 2 << std::endl;
Run Code Online (Sandbox Code Playgroud)
这将产生以下错误:
Run Code Online (Sandbox Code Playgroud)error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
但是,我通过在代码中包含一个附加变量来立即修复此错误:
error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
Run Code Online (Sandbox Code Playgroud)
三元运算符如何工作,以及如何确定其返回类型(如编译器称为<unresolved overloaded function type>)?
我正在编写一个脚本来读取文件夹(每个文件大小从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()即使它是相同的数据?这是正常行为还是我的代码中有问题?对于这两种情况,输出文件似乎都是相同的,所以我知道数据没有丢失.
与Git + Heroku(Ruby on Rails)一起使用的优秀部署策略是什么?
目前我使用我的原始Git存储库的方式:所有功能(或"故事")首先作为分支检出,然后与master合并并推送到原点.
推送到origin/master的任何东西都会触发一个脚本,将新的rails代码拉到临时区域(简单的rails webserver).
当我需要将新的生产版本推送到Heroku时,我应该创建一个新的分支(称为类似于production_version_121),并以某种方式将其推送到Heroku?
理想情况下,我想选择我应该包含在生产分支中的先前开发版本中的哪些功能...测试它,并推送到Heroku.
例如,我可能不希望所有最新代码都被推送到生产中.我可能想要我曾经使用的功能"a"和功能"c"都以某种方式合并到制作中,而不包括需要更多调试的实验性功能"b".
NB我首先要尝试避免使用capistrano并立即手动工作.
思考?最佳实践?
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属性之间的区别是什么?它们是否具有相同的影响?
我是新手mongodb,想知道json从一台服务器导入文件到另一台服务器.我尝试了以下命令mongoimport -d test -c bik check.json,它对我来说很好.现在我想知道什么时候有多个json文件我如何一次性导入所有这些文件.我找不到任何相关的文件,这是不可能的.请帮助我这是可能的以及如何
c++ ×4
css ×2
performance ×2
c++11 ×1
cout ×1
deployment ×1
double ×1
file ×1
file-writing ×1
flexbox ×1
g++ ×1
gcc ×1
git ×1
heroku ×1
html ×1
java ×1
json ×1
linux ×1
mongodb ×1
mongoimport ×1
optimization ×1
ostream ×1
properties ×1
puppet ×1
python ×1
tags ×1
w3c ×1