我正在研究c ++的参考,现在我对变量名和引用之间的区别感到很困惑.测试代码如下:
class TestClass{
private:
int num;
public:
TestClass(int n):num(n){
cout<<this<<" : init of : " <<this->num<<endl;
}
TestClass(const TestClass& t):num(t.num){
cout<<this<<" : copyInit of : " <<this->num<<endl;
}
};
int main(int argc, const char * argv[]){
TestClass t = *(new TestClass(55)); //just to test copy initialization
const TestClass t2 = TestClass(100); //option1
const TestClass &t2 = TestClass(100); //option2
}
Run Code Online (Sandbox Code Playgroud)
所以现在我有两个制作对象的选项,它们彼此互斥.
根据我的理解,如果我使用options2,编译器会在堆栈内存中生成一个临时对象,并将参考值返回给t2.
如果这是对的,我该如何用语言表达或解释选项1?似乎在堆栈内存中创建了相同的对象,并且计算机给该对象命名为't2',但我不清楚这个option1与option2的不同之处,因为变量和引用的名称有些令人困惑.
另外,交替切换选项,我可以看到在每种情况下在不同的存储器位置创建对象.(例如,option1的对象是在0x7fff5fbff828中创建的,那个或option2是在0x7fff5fbff820中创建的)
你能解释一下吗?
1.变量名(option1)和引用(option2)之间的区别是什么.
2.选项1和2中的工作方式有何不同.
3.在任何一种情况下,为什么在不同的内存位置创建对象.
提前谢谢你的帮助!
我看到下面的代码可以检查一个单词是否是
list1 = 'this'
compSet = [ 'this','that','thing' ]
if any(list1 in s for s in compSet): print(list1)
Run Code Online (Sandbox Code Playgroud)
现在我想检查列表中的单词是否在其他列表中,如下所示:
list1 = ['this', 'and', 'that' ]
compSet = [ 'check','that','thing' ]
Run Code Online (Sandbox Code Playgroud)
检查list1中的单词是否在compSet中,以及对非现有元素执行某些操作的最佳方法是什么,例如,将'和'附加到compSet或从list1中删除'和'?
__________________update___________________
我刚刚发现做同样的事情不适用于sys.path.下面的代码有时会添加到sys.path的路径,有时不会.
myPath = '/some/my path/is here'
if not any( myPath in s for s in sys.path):
sys.path.insert(0, myPath)
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?另外,如果我想在一组路径上执行相同的操作,
myPaths = [ '/some/my path/is here', '/some/my path2/is here' ...]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
是否可以将矢量作为Pandas数据帧的元素?
假设我有两个np向量:
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([6, 15, 24])
Run Code Online (Sandbox Code Playgroud)
然后,我想知道我是否可以像下面那样制作一些2x3表.
[1,2,3] | [4,5,6] | [7,8,9]
6 | 15 | 24
Run Code Online (Sandbox Code Playgroud) 我正在编写一个getWebContent函数,它使用 Promise 返回网页的内容(我也在使用 Request 模块)。
我想使用这个函数的方式是var content = getWebContent(),这样content变量包含所请求网站的数据。我开始如下:
var request = require('request')
var getWebContent = function () {
target = 'http://www.google.com';
var result = null;
var get = function (url) {
return new Promise(function (resolve, reject) {
function reqCallback(err, res, body) {
if (err) reject(err);
else resolve(body);
};
request(url, reqCallback);
});
};
get(target).then(function (res) {
result = res;
console.log(res);
});
return result;
};
var goog = getWebContent();
console.log(goog)Run Code Online (Sandbox Code Playgroud)
但是,此代码不起作用,因为该函数在解析 Promise 对象之前返回 …
是否有可能以某种方式序列化/保存锚,以便我具有持久的脱机跟踪能力?
例如,我要检测一个3D场景,该场景应该可以长时间共享和跟踪。为此,我认为我需要一个用于锚定的私有云服务器或脱机锚定文件,以便可以在一段时间内在多个设备上共享它们。
AR Core有可能吗?
谢谢,