我认为您误解了 &
运算符在这种情况下的作用。获取变量的地址 (&var
) 与表示参数将作为引用传递(正如您所见,在 const string 中) &a
)。
您的代码实际上所做的是隐式创建一个新的 string
对象,该对象使用字符串 "bye"
进行初始化,然后该对象通过引用传递 到 Dude
构造函数。也就是说,您的代码本质上是:
Dude d2 = Dude(string("bye"));
然后构造函数通过引用接收该字符串对象,并通过复制构造函数将其分配给 x
。
代码中需要注意的事项:
- T 的定义是递归的。如果需要的话可以制定一个界面。
正如编译器明确指出的那样,您的分配是错误的! :-)
Comparable tmp = a[j];
这会起作用,因为这是真实且正确的。由于 T 扩展了 Comparable,因此 T 是一个 Comparable。
a[j - 1] = tmp;
这是行不通的,因为您试图将超类实例分配给子类实例。 Comparable 不保证具有 T 行为。因此出现了错误。
您可以尝试参数化该函数所在的类。使用该参数来定义 T。同样,您可能需要使用接口。除非我们更多地了解其他相关的设计目标,否则很难提供建议。就代码而言,该错误是正确且合理的。
您还可以使用 2D 变换。下面的代码片段对其进行了说明,其中列表缩放了 25%。
注意:此处使用 Bootstrap 的唯一目的是布局演示(效果前/后)。
ul#before {
}
ul#after {
transform: scale(1.25);
}
div.container, div.row {
padding: 20px;
}
ul {
border: 6px solid #000000;
}
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<!-- Bootstrap theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<!-- HTML -->
<div class="container">
<div class="row">
<div class="col-xs-5">
Before
</div>
<div class="col-xs-5 col-xs-offset-1">
After (scale 25%)
</div>
</div>
<div class="row">
<div class="col-xs-5">
<ul id="before">
<li>Lorem ipsum dolor sit amet...</li>
<li>In vel ante vel est accumsan...</li>
<li>In elementum libero vel...</li>
<li>Nam ut ante a sem mattis...</li>
<li>Curabitur fermentum nisl...</li>
<li>Praesent vel risus ultrices...</li>
</ul>
</div>
<div class="col-xs-5 col-xs-offset-1">
<ul id="after">
<li>Lorem ipsum dolor sit amet...</li>
<li>In vel ante vel est accumsan...</li>
<li>In elementum libero vel...</li>
<li>Nam ut ante a sem mattis...</li>
<li>Curabitur fermentum nisl...</li>
<li>Praesent vel risus ultrices...</li>
</ul>
</div>
</div>
</div>
<!-- JQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Bootstrap JS -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
参考:
标准没有指定确切的哈希算法,因此结果
会有所不同。 VC10使用的算法似乎并没有采取所有的
如果字符串长度超过 10 个字符,则考虑字符;它
以 1 + s.size() / 10
的增量前进。这是合法的,
尽管从 QoI 的角度来看,相当令人失望;这样的哈希码
众所周知,对于某些典型的数据集(例如
网址)。我强烈建议您将其替换为 FNV 哈希或
一个基于梅森素数:
FNV 哈希:
struct hash
{
size_t operator()( std::string const& s ) const
{
size_t result = 2166136261U ;
std::string::const_iterator end = s.end() ;
for ( std::string::const_iterator iter = s.begin() ;
iter != end ;
++ iter ) {
result = (16777619 * result)
^ static_cast< unsigned char >( *iter ) ;
}
return result ;
}
};
梅森素数哈希:
struct hash
{
size_t operator()( std::string const& s ) const
{
size_t result = 2166136261U ;
std::string::const_iterator end = s.end() ;
for ( std::string::const_iterator iter = s.begin() ;
iter != end ;
++ iter ) {
result = 127 * result
+ static_cast< unsigned char >( *iter ) ;
}
return result ;
}
};
(FNV 哈希据说更好,但梅森素数哈希将是
在很多机器上更快,因为乘以 127 通常是
明显快于乘以 16777619。)
据我所知没有这样的方法。
DropDownListFor
本身不支持它,您可以对 DropDownListFor
的结果执行查找/替换,也可以编写自己的 HTML 帮助程序来执行此操作。请参阅类似的问题:
这是因为复制构造函数是私有的..
您的代码正在
- 创建一个临时 exampleClass 并调用默认构造函数
exampleClass()
- 尝试使用私有复制构造函数将生成的临时对象分配给 e1
您通常不应显式设置 GOROOT。 go
命令根据其自己的目录位置自动识别适当的 GOROOT
。
GOPATH
默认为 $HOME/go
。如果你想把它放在其他地方,你只需要明确地设置它。
GOPATH
包含:
- 使用
go install
安装的二进制文件,位于$GOPATH/bin
。- 可以使用
GOBIN
环境变量覆盖此位置。
- 可以使用
- 下载的模块源代码和校验和的缓存,位于
$GOPATH/pkg /mod
。- 可以使用
GOMODCACHE
环境变量覆盖此位置。
- 可以使用
如果您同时设置了GOBIN
和GOMODCACHE
,并且没有设置GO111MODULE=off
,那么GOPATH
本身应该本质上已经没有效果。
此外,在旧版 GOPATH 模式下(当还设置了 GO111MODULE=off 时),GOPATH 包含:
- 用于构建包的源代码,存储在以
$GOPATH/src
为根的目录树中。 - 使用
go install
安装的非二进制文件,位于$GOPATH/pkg
。- 安装非二进制包不再特别有用:
go
命令具有 构建工件的缓存,自 Go 以来一直需要它1.12 即使在GOPATH
模式下也是如此。 - 构建缓存不位于
GOPATH
内。可以使用GOCACHE
环境变量设置其位置。
- 安装非二进制包不再特别有用:
¹ 在 Go 1.17 及更早版本上也可以使用 go get
安装二进制文件,但从 Go 1.16 开始首选 go install
;请参阅https://golang.org/doc/go1.16。
首先将程序分解为逻辑步骤:
- 获取用户的输入
- 检查输入是否为 4 位数字
- 将数字拆分为各个数字
- 对每个数字执行余数计算
- 重新组合 4 位数字,根据需要交换数字
- 打印输出。
我想您至少可以做到其中的一些,所以请让我们知道您到目前为止所做的事情。
我将使用事务性队列 (MSMQ) 来存储服务调用。循环将使消息出队并调用 TransactionScope 中的服务,如果调用失败,则消息看起来仍在队列中。可以通过在消息中添加到期时间来指定总体超时。如果您确实想要一个可靠的解决方案,那么这个解决方案很好,因为我猜调用该操作至关重要。
使用 UIDevice
属性 batteryState
:
[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
来自 UIDevice Docs:
typedef enum {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged,
UIDeviceBatteryStateCharging,
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
至于你的第二个问题。我不相信您可以确定电池组和壁式充电器之间的任何区别,因为上述 UIDeviceBatteryState
标志是设备电池可以报告的唯一“状态”。因此,电池组和壁式充电器都会显示为 UIDeviceBatteryStateCharging
或 UIDeviceBatteryStateFull
(如果电池组已插入但电量耗尽,则显示为 UIDeviceBatteryStateUnplugged
) )。
打开Xcode Organizer >文档并搜索UIPopoverController。在左侧边栏中的底部,打开“Popovers”示例代码项目。
基本上,您会发现需要在代码中的某个位置创建一个 UIPopoverController
实例:
- (void)viewDidLoad {
...
/* 'contentCtrl' is an instance of UIViewController
* such as an UITableViewController
*/
...
popover = [[UIPopoverController alloc] initWithContentViewController:contentCtrl];
popover.popoverContentSize = CGSizeMake(320, 480);
...
}
并在某个时刻显示它,例如当用户按下按钮时:
- (IBAction)showPopover:(id)sender {
UIButton *button = (UIButton *)sender;
[popover presentPopoverFromRect:button.frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
我建议研究该示例。如果您需要有关 UITableView
部分的帮助,文档中提供了数十个有关该主题的示例(以及 SO 中的数百个问题)。
使用 pngquant 或 posterizer 来减小 PNG 图像的大小(这些工具是有损的,但可以显着节省)。
您还可以使用 PNGOUT 对其进行优化,这是最好的无损优化器之一。
我已经为这些编写了 Mac GUI。
由于 Android 本身并不支持 Quicktime,因此 Apple技术。用于下载此应用程序的客户端也很可能不尊重 http 信封上设置的文件名作为将文件写入文件系统所使用的名称,因为是没有什么强迫它。
Because Android doesn't natively support Quicktime, an Apple technology. It's also very possible that the client used to download this app isn't respecting the filename set on the http envelope as the name it uses to write the file to the filesystem, as there is nothing forcing it to.
为什么这个 PHP 下载脚本仅在 Android 上失败