可能重复:
为什么'this'是指针而不是引用?
this除了历史语言决策之外,C++中是否有任何理由成为指针而不是引用?鉴于例如复制构造函数或赋值运算符都接受对" "的引用而that不是指针,这感觉有点奇怪.
[ 老实说,我找不到这个问题,虽然它确实感觉像是可能的重复 ]
我正在尝试在Python中读取二进制文件(代表Matlab中的矩阵).但我无法读取文件并将字节转换为正确的值.
二进制文件由一系列4字节数组成.前两个数字分别是行数和列数.我的朋友给了我一个Matlab函数,他用fwrite编写了这个函数.我想做这样的事情:
f = open(filename, 'rb')
rows = f.read(4)
cols = f.read(4)
m = [[0 for c in cols] for r in rows]
r = c = 0
while True:
if c == cols:
r += 1
c = 0
num = f.read(4)
if num:
m[r][c] = num
c += 1
else:
break
Run Code Online (Sandbox Code Playgroud)
但每当我使用f.read(4)时,我会得到类似'\ x00\x00\x00\x04'的内容(此具体示例应代表4),我无法弄清楚将其转换为正确的数字(使用int,hex或类似的东西不起作用).我偶然发现了struct.unpack,但这似乎没什么帮助.
下面是一个示例矩阵和相应的二进制文件(当我使用python函数f.read()读取整个文件时没有任何大小参数),Matlab函数为它创建:
4 4 2 4
2 2 2 1
3 3 2 4
2 2 6 2
'\x00\x00\x00\x04\x00\x00\x00\x04@\x80\x00\x00@\x00\x00\x00@@\x00\x00@\x00\x00\x00@\x80\x00\x00@\x00\x00\x00@@\x00\x00@\x00\x00\x00@\x00\x00\x00@\x00\x00\x00@\x00\x00\x00@\xc0\x00\x00@\x80\x00\x00?\x80\x00\x00@\x80\x00\x00@\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
所以前4个字节和第5个8字节都应该是4,因为矩阵是4x4.然后它应该是4,4,2,4,2,2,2,1等...
多谢你们!
在使用下面的代码查询mysql数据库后,我生成了一个html文件:
$myFile = "page.htm";
Run Code Online (Sandbox Code Playgroud)
$ fh = fopen($ myFile,'w')或死("无法打开文件"); fwrite($ fh,$ row ['text']); FCLOSE($ FH);
在msql db上,文本使用utf8_general_ci进行编码.但我需要将它包含在php网页中,如下所示:
<?include('page.htm');?>
Run Code Online (Sandbox Code Playgroud)
请记住,php网页在标题上使用utf8字符集:
<meta http-equiv="content-type" content="text/html; charset=utf8" />
Run Code Online (Sandbox Code Playgroud)
现在,如果我在数据库上写一些带有重音符号(èàì)或引号字符的字母,我直接打开page.htm并在数据库上看到它看起来一切正常,但是当我在php页面上查看时,我看到了问号 字符而不是我原来想要的字符.为什么?!提前致谢!
我正在使用的团队决定使用varchar主键创建一个表.此表由此主键上的另一个表引用.
我有习惯按照我在大学学到的东西来创建一个整数主键.我已经读过使用整数主键可以提升性能.
问题是我不知道创建整数主键的任何其他原因.你有什么建议吗?
在我的Latex文档中,我有许多带有如下标题的数字:
\begin{wrapfigure}{l}{0.35\textwidth}
\begin{center}
\includegraphics[width=0.25\textwidth]{zhangsanfeng.jpg}
\end{center}
\caption{Zhang Sanfeng}
\end{wrapfigure}
Run Code Online (Sandbox Code Playgroud)
这将给我的图片和图1的标题:张三峰
我想摆脱图1:位.
我有以下内容:
\renewcommand{\figurename}{}
\renewcommand{\thefigure}{}
Run Code Online (Sandbox Code Playgroud)
这摆脱了图1,但没有摆脱:所以我留下:张三峰.
我怎么摆脱这个?
此外,是否有任何可用资源列出可以续订的命令..我找不到任何地方!
谢谢.
我正在寻找一种方法将用户数据脚本附加到Java SDK中的EC2 RunRequest(相当于命令行工具的ec2-run-instances ami-1234567 -f startup-script.zip).
我读过的一些内容表明任何带有"#!"的用户数据字符串都会执行,但似乎并非如此.
这甚至可能吗?
仅供参考:这是我的测试类:
public class AWSTest {
public static void main(String[] args) {
AWSCredentials credentials = new BasicAWSCredentials("access-key","secret-access-key");
AmazonEC2Client ec2 = new AmazonEC2Client(credentials);
RunInstancesRequest request = new RunInstancesRequest();
request.setInstanceType(InstanceType.M1Small.toString());
request.setMinCount(1);
request.setMaxCount(1);
request.setImageId("ami-84db39ed");
request.setKeyName("linux-keypair");
request.setUserData(getUserDataScript());
ec2.runInstances(request);
}
private static String getUserDataScript(){
ArrayList<String> lines = new ArrayList<String>();
lines.add("#! /bin/bash");
lines.add("curl http://www.google.com > google.html");
lines.add("shutdown -h 0");
String str = new String(Base64.encodeBase64(join(lines, "\n").getBytes()));
return str;
}
static String join(Collection<String> s, String delimiter) …Run Code Online (Sandbox Code Playgroud) 我有一个多选择变量发布到控制器.多个选择的工作方式是,如果只选择了一个值,则将其作为单个String传递;如果选择了多个值,则将其作为String []传递.我想保持处理简单并将传递的值视为相同.所以我能做到的最好的方法是将其转换为List,如下所示:
def selectedValues = params.selectedValues
List valuelist = new ArrayList()
if(selectedValues instanceof String) {
valuelist.add(selectedValues)
} else {
valuelist = selectedValues as List
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我很好奇,如果有一个更通常的方式来做这个,也许有一个班轮:).
当然,如果我只是这样做:
List valuelist = selectedValues as List
Run Code Online (Sandbox Code Playgroud)
它不适用于单个选定值,因为它会将它从24个转换为[2,4]
有任何想法吗?
在for循环遍历列表的Python 循环中,我们可以编写:
for item in list:
print item
Run Code Online (Sandbox Code Playgroud)
它整齐地遍历列表中的所有元素.有没有办法在循环中知道到目前为止我循环了多少次?例如,我想要一个列表,在我处理了十个元素后,我想用它们做一些事情.
我想到的替代方案将是这样的:
count=0
for item in list:
print item
count +=1
if count % 10 == 0:
print 'did ten'
Run Code Online (Sandbox Code Playgroud)
要么:
for count in range(0,len(list)):
print list[count]
if count % 10 == 0:
print 'did ten'
Run Code Online (Sandbox Code Playgroud)
到目前为止,是否有更好的方法(就像for item in list)获得迭代次数?
我有一个MKMapView,允许用户滚动地图.后来,我想得到地图中心点的纬度和经度,但找不到一个简单的方法.目前我正在尝试这样的事情:
CLLocationCoordinate2D centre = [locationMap convertPoint:locationMap.center toCoordinateFromView:locationMap];
txtLatitude.text = [NSString stringWithFormat:@"%f",centre.latitude];
txtLongitude.text = [NSString stringWithFormat:@"%f",centre.longitude];
Run Code Online (Sandbox Code Playgroud)
但它没有用 - 纬度和经度都是零.我会感激任何人可能有的想法!
==============
哦.如果我添加:
NSLog(@"%@", locationMap);
Run Code Online (Sandbox Code Playgroud)
如下所示,日志显示"(null)".我的标题中包括以下内容(除此之外):
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
IBOutlet MKMapView *locationMap;
@property (nonatomic, retain) IBOutlet MKMapView *locationMap;
Run Code Online (Sandbox Code Playgroud)
以及我的方法文件中的以下内容:
@synthesize locationMap;
Run Code Online (Sandbox Code Playgroud)
这是在编译时没有任何警告或错误.开始怀疑我是否错过了一些明显的东西?