我到处都读过必须初始化引用然后再进行初始化.
为了测试我的理解,我写了以下小程序.似乎我已经成功地重新分配了一个引用.有人可以向我解释我的程序中实际发生了什么吗?
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
int i = 5, j = 9;
int &ri = i;
cout << " ri is : " << ri <<"\n";
i = 10;
cout << " ri is : " << ri << "\n";
ri = j; // >>> Is this not reassigning the reference? <<<
cout << " ri is : " << ri <<"\n";
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码编译正常,输出正如我所期望的那样:
ri is : 5 …Run Code Online (Sandbox Code Playgroud) 我正在经历这个: - https://isocpp.org/wiki/faq/multiple-inheritance#mi-delegate-to-sister
有人可以解释一下这是如何发生的,为什么会发生这种情况?
我是C++中线程概念的新手.我只是想知道几件事情:如何是boost::unique_lock从不同boost::upgrade_lock?
独家所有权实际上与升级所有权有何不同.
也许可以说独占所有权是线程安全但不是升级所有权,在这种情况下我想知道升级所有权如何可能是有害的?我想知道什么是upgrade_lock允许或
unique_lock不允许除了独占锁定的东西.不提供排他性锁定
upgrade_lock使它类似于shared_lock什么,如果是,那么它与它有什么不同shared_lock?
我已经编写了一个调用函数的python脚本。此函数将7列表作为函数内部的参数,如下所示:
def WorkDetails(link, AllcurrValFound_bse, AllyearlyHLFound_bse,
AlldaysHLFound_bse, AllvolumeFound_bse,
AllprevCloseFound_bse, AllchangePercentFound_bse,
AllmarketCapFound_bse):
Run Code Online (Sandbox Code Playgroud)
其中所有参数link均为列表。但这使我的代码看起来很难看。我将这些列表传递给该函数,因为该函数在所有这些列表中附加了几个值。我该如何以更具可读性的方式为其他用户使用?
最近我试图使用各种命令找出文件的大小,它显示了巨大的差异.
ls -ltr显示它的大小约为34GB(由我舍入的字节),而du -sh文件名显示它大约为11GB.stat命令显示大约34GB左右.任何想法,哪个是最可靠的命令来查找文件的实际大小?
对它执行了一些复制操作,我们不确定这是否适当地完成,因为在执行复制的某个时间源文件被我们的工作删除之后.
假设我有一个A.so文件,其依赖关系是从ldd找到的
#ldd A
[...]
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007faaf9722000)
libxyz.so.49 => /usr/lib64/libxyz.so.49 (0x00007faaf5689000)
Run Code Online (Sandbox Code Playgroud)
现在这意味着,在存在libxml2.so.2和libxyz.so.49的情况下,一切都设置为让我使用A.so.如果libxyz.so.49内部依赖某些libabc.so.2怎么样?
我想澄清一下,当从ldd找到A.so的依赖关系时,libabc.so.2是否会被列出,或者不会反映出来.如果没有,那么我怎样才能找到所有相互依赖关系.可以通过调用来消除链中的相互依赖性,并且在核心/崩溃中没有相同的结果
我正在执行一个shell脚本,我在其中运行一个sybase查询,该查询在文件中提供O/P.
输出是: -
tablename
---------------------------
result of query executed my case will be an integer returned
(Number of rows effected ).
Run Code Online (Sandbox Code Playgroud)
我想要做的是读result of query executed which in my case will be an integer returned入shell脚本中的变量.它将位于我已重定向Sybase Query输出的文件的第3行.
我怎样才能做到这一点 ?
我使用 mtime 和 find 。我是第一次交。我看到一个将文件从一个位置移动到另一个位置的脚本。
`find . \ -mtime +0 -exec mv {} target \ ;`
Run Code Online (Sandbox Code Playgroud)
我想了解 +0 是否仅表示 24 小时之前创建的文件?现在,当这些文件被移动到目标时,我还想将那里的权限修改为一个适合所有人阅读的权限。所以我使用了命令
`find target -mtime 0 -exec chmod 644 {} \;`
Run Code Online (Sandbox Code Playgroud)
我想真正了解 +0 , 0 的用法之间的差异。0 是否仅表示现在和 24 小时之间,而 +0 表示 24 岁及以上?我在这里的主要目的是修改我刚刚移动它们的目标目录中所有文件的权限。由于它们可能很多,我只想运行一个命令并完成所有操作。
我编写这个小代码只是为了看看迭代器是如何实际失效的,并且在达到容量之后没有指向向量的更改位置.
这里矢量和容量的大小最初都是5.之后我在向量中插入了一些其他元素,并没有重新初始化我的迭代器指向myvector.begin().49在maximum size of vector is : 1073741823再次打印向量元素之后,这会导致输出中的垃圾值.
我的问题是为什么myvector.begin()在将所有元素复制到新位置后,C++不再使点迭代器成为有效的?
这也可能导致一些难以调试的行为.我知道一种安全的工作方式是在使用之前始终重新初始化迭代器.
#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
int main()
{
vector<int> myvector;
vector<int>::iterator it;
int myarray[]= {100,200,300,400};
myvector.insert(it,500);
it=myvector.begin();
myvector.insert(it,myarray,myarray+4);
it=myvector.begin();
for(;it!=myvector.end();++it)
cout <<*it<<endl;
cout <<"size of vector is :" << myvector.size() <<"\n";
cout <<"capacity of vector is : " << myvector.capacity()<<"\n";
cout <<"maximum size of vector is : " << myvector.max_size()<<"\n";
myvector.push_back(600);
for(;it!=myvector.end();++it)
cout <<*it<<endl;
}
Output of program :-
100
200 …Run Code Online (Sandbox Code Playgroud) 我有 2 个不同的 csv,其中包含训练数据和测试数据。我从这些 train_features_df 和 test_features_df 创建了两个不同的数据帧。请注意,测试和训练数据有多个分类列,因此我需要对它们应用 labelEncoder,因为它适合我的数据集。所以我在训练和测试数据上分别应用了标签编码器。当我打印训练和测试数据集的新编码值时,我发现对于相同特征的相同分类值,新编码数据的输出是不同的。这是否意味着我必须合并训练数据和测试数据。然后应用标签编码,然后再次将它们分开?
from sklearn.preprocessing import LabelEncoder
target=train_features_df['y']
train_features_df=train_features_df.drop(['y'], axis=1)
train_features_df.head()
y = target.values
print("printing feature column of train datasets: \n")
print(train_features_df.values)
le=LabelEncoder()
X_train_label_encoded=train_features_df.apply(le.fit_transform)
print("\n printing feature column of train datasets after label encoder: \n")
print(X_train_label_encoded.head())
print("printing test feature datasets: \n")
print(test_features_df)
X_test_label_encoded=test_features_df.apply(le.fit_transform)
print("printing test feature encoded datasets: \n")
print(X_test_label_encoded)
Run Code Online (Sandbox Code Playgroud)
上述输出如下:-
printing feature column of train datasets:
[['k' 'v' 'at' ... 0 0 0]
['k' 't' 'av' ... 0 0 0]
['az' 'w' 'n' …Run Code Online (Sandbox Code Playgroud) c++ ×4
unix ×3
python ×2
boost ×1
boost-thread ×1
find ×1
iterator ×1
ldd ×1
linux ×1
parameters ×1
python-2.7 ×1
reference ×1
scikit-learn ×1
shell ×1
vector ×1