在本书中,我正在学习本书如何编写堆栈,但是当我编译它时,它会遇到编译错误:
#define DEFAULT_SIZE = 10
class Stack
{
private:
int size;
int top;
int *value;
public:
Stack( int size = DEFAULT_SIZE );
virtual ~Stack();
bool isFull();
bool isEmpty();
void push(int);
int pop();
};
Run Code Online (Sandbox Code Playgroud)
并且错误表明:
C:\Documents and Settings\Eddy\Desktop\C++ Playground\Data Structures\stack.h|14|error: expected primary-expression before '=' token|
||=== Build finished: 1 errors, 0 warnings ===|
Run Code Online (Sandbox Code Playgroud)
我使用Code :: Blocks作为我的IDE,我相信你不能在类中初始化,并且创建一个"DEFAULT_SIZE"通常会在默认构造函数中.
我有正确的想法吗?还是我做错了什么?
在这个MySQL表定义中:
CREATE TABLE groups (
ug_main_grp_id smallint NOT NULL default '0',
ug_uid smallint default NULL,
ug_grp_id smallint default NULL,
KEY (ug_main_grp_id)
);
Run Code Online (Sandbox Code Playgroud)
什么是KEY关键字是什么意思?它不是主键,它不是外键,它只是一个索引吗?如果是这样,这种类型的索引有KEY什么特别之处?
我想将一些文本对齐到div的顶部.似乎vertical-align: text-top;应该做的伎俩,但它不起作用.我做的其他事情,比如将div放入列并显示虚线边框(所以我可以看到div顶部的位置)都可以正常工作.
#header_p {
font-family: Arial;
font-size: 32px;
font-weight: bold;
}
#header_selecttxt {
font-family: Arial;
font-size: 12px;
font-weight: bold;
vertical-align: text-top;
}
#header_div_left {
float: left;
width: 50%;
border: dashed;
vertical-align: top;
}
#header_div_right {
margin-left: 50%;
width: 50%;
border: dashed;
}
Run Code Online (Sandbox Code Playgroud) 在Java的隐藏功能中,最佳答案提到了Double Brace Initialization,它具有非常诱人的语法:
Set<String> flavors = new HashSet<String>() {{
add("vanilla");
add("strawberry");
add("chocolate");
add("butter pecan");
}};
Run Code Online (Sandbox Code Playgroud)
这个成语创建了一个匿名内部类,其中只包含一个实例初始化程序,"可以使用包含作用域中的任何[...]方法".
主要问题:这听起来效率低吗?它的使用是否应限于一次性初始化?(当然炫耀!)
第二个问题:新的HashSet必须是实例初始化程序中使用的"this"...任何人都可以了解机制吗?
第三个问题:在生产代码中使用这个成语是否过于模糊?
简介:非常非常好的答案,谢谢大家.在问题(3)中,人们认为语法应该是清楚的(尽管我建议偶尔发表评论,特别是如果你的代码会传递给可能不熟悉它的开发人员).
在问题(1)上,生成的代码应该快速运行.额外的.class文件会导致jar文件混乱,并且会稍微减慢程序启动速度(感谢@coobird测量它).@Thilo指出垃圾收集可能会受到影响,在某些情况下,额外加载类的内存成本可能是一个因素.
问题(2)对我来说最有趣.如果我理解答案,那么DBI中发生的事情是匿名内部类扩展了由new运算符构造的对象的类,因此具有引用正在构造的实例的"this"值.井井有条.
总的来说,DBI让我感到非常好奇.Coobird和其他人指出,您可以使用Arrays.asList,varargs方法,Google Collections和提议的Java 7 Collection文字获得相同的效果.Scala,JRuby和Groovy等较新的JVM语言也为列表构建提供了简明的符号,并且与Java良好地互操作.鉴于DBI使类路径混乱,减慢了类加载速度,并使代码更加模糊,我可能会回避它.但是,我打算在一位刚刚获得SCJP的朋友身上发表这篇文章,并且喜欢关于Java语义的好朋友!;-) 感谢大家!
7/2017:Baeldung 对双支撑初始化有很好的总结,并认为它是一种反模式.
12/2017:@Basil Bourque指出,在新的Java 9中你可以说:
Set<String> flavors = Set.of("vanilla", "strawberry", "chocolate", "butter pecan");
Run Code Online (Sandbox Code Playgroud)
这肯定是要走的路.如果您遇到早期版本,请查看Google Collections的ImmutableSet.
有人知道如何绘制3D表面并隐藏不可见的线条吗?
我记得从Apple II书中读过一些代码,BASIC中只有大约25行,它可以绘制一些3D表面,例如山峰或看起来像水波纹的形状.首先显示了不可见的线条,但在添加几行代码后,隐形线也消失了.
有人知道如何做到这一点或知道网上的资源吗?
当我包含hibernate-c3p0在我的Maven pom.xml文件中时,我得到了一个NoClassDefFoundError无法找到的运行时org.slf4j.impl.StaticLoggerBinder.我的印象是Maven会解决这种依赖 - 所以如果c3p0需要slf4j,那么slf4j将被下载并包含在内.
我的pom.xml档案有:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>3.3.1.GA</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 有没有一种很好的方法可以通过Java从Google的电子表格服务中获取列中的第一个空单元格?
我知道我可以用:
public CellFeed CheckColumn(int row, int col)
throws IOException, ServiceException {
CellQuery query = new CellQuery(cellFeedUrl);
query.setMinimumRow(row);
query.setMaximumRow(row);
query.setMinimumCol(col);
query.setMaximumCol(col);
query.setReturnEmpty(true);
CellFeed feed = service.query(query, CellFeed.class);
int cell_loc[];
for (CellEntry entry : feed.getEntries()) {
cell_loc=CheckIfEmpty(entry);
}
return cell_loc;
}
Run Code Online (Sandbox Code Playgroud)
并浏览条目,但我不想一次加载整个列,这对我的用户来说很慢,而且只是遍历整个列似乎很糟糕
有什么想法吗?
我一直在使用以下命令来grep我当前目录中和下面的所有python源文件中的字符串:
find . -name '*.py' -exec grep -nHr <string> {} \;
Run Code Online (Sandbox Code Playgroud)
我想简化一些事情,这样我就可以输入类似的内容
findpy <string>
Run Code Online (Sandbox Code Playgroud)
并获得完全相同的结果.别名似乎不够,因为它们只进行字符串扩展,而我需要指定的参数不是最后一个参数.听起来函数适合于任务,所以我有几个问题:
java ×3
.net ×1
3d ×1
bash ×1
c# ×1
c++ ×1
c3p0 ×1
collections ×1
css ×1
disassembly ×1
grep ×1
hibernate ×1
indexing ×1
mysql ×1
performance ×1
regex ×1
shell ×1
slf4j ×1
syntax-error ×1
x86 ×1