我一直在研究矢量实现,偶然发现了一条使我作为天真的C ++学习者感到困惑的行。
require 'devise'
class ApplicationController < ActionController::Base
include Devise::Controllers::Helpers
before_action :configure_permitted_parameters, if: :devise_controller?
返回类型?链接到代码:https://github.com/questor/eastl/blob/56beffd7184d4d1b3deb6929f1a1cdbb4fd794fd/vector.h#L146
T*&
答案 0 :(得分:3)
T
类型的值的指针引用,该值作为模板参数传递,或更确切地说:
VectorBase<T>
实例,其中该程序指定了T
,T
可以是int
,string
或其他任何东西。T
值作为矢量中的一项存在。T* pointer = &this->itemValues[123]
答案 1 :(得分:0)
http://c-faq.com/decl/spiral.anderson.html
这将是对类型T的指针的引用。对指针的引用可能有点棘手,但是在使用引用时,智能指针经常使用它,从而将增量保存到了引用计数器中。
答案 2 :(得分:0)
C ++中的类型应从右到左读取。之后,它变为:引用T的指针。因此您的假设是正确的。
对指针的引用非常有用,通常用作输出参数或输入输出参数。让我们考虑一下std :: swap
的特定情况 fake_num[np.isnan(fake_num.iloc[:,0])].iloc[:,0]=lr.predict(np.array(fake_num[np.isnan(fake_num.iloc[:,0])].iloc[:,1]).reshape(-1, 1))
fake_num
D:\Users\shan xu\Anaconda3\lib\site-packages\pandas\core\indexing.py:630: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self.obj[item_labels[indexer[info_axis]]] = value
Out[12]:
0 1
0 1.0 1.1
1 2.0 1.2
2 3.0 1.3
3 4.0 1.4
4 NaN 1.6
5 NaN 1.8
与每种类型一样,它可用作返回值。在状态库中,您可以找到template <typename T>
void swap(T*& lhs, T*& rhs) {
T *tmp = rhs;
rhs = lhs;
lhs = tmp;
}
的返回类型,允许使用std::vector<int *>::operator[]
。
在我从事过的项目中,我还没有看到这种可以改变内部结构的吸气剂的用法。但是,它确实允许您编写一种用于读取和写入成员值的方法。
在我看来,我将其称为代码气味,因为它使您难以理解哪些调用者进行了实际修改。 当将const引用返回给成员时,故事当然会有所不同,因为这可能会阻止复制。尽管阻止指针的复制不会增加价值。