此处将为大家介绍关于List和有什么不一样和清单?的详细内容,并且为您解答有关list和有什么不一样和清单一样的相关问题,此外,我们还将为您介绍关于""和""和有什么不一样?、#include和有什么
此处将为大家介绍关于List和有什么不一样和清单?的详细内容,并且为您解答有关list和有什么不一样和清单一样的相关问题,此外,我们还将为您介绍关于" " 和 " " 和有什么不一样?、#include 和有什么不一样
- List和有什么不一样和清单?(list和有什么不一样和清单一样)
- " " 和 " " 和有什么不一样?
- #include 和有什么不一样
和 #include “文件名”? - #include和有什么不一样
和#include“文件名”? - .* 和有什么不一样?和 .* 正则表达式?
List和有什么不一样和清单?(list和有什么不一样和清单一样)
关于 Java泛型, 我有一个非常基本的问题。我想这两个List<Number>
和List<? extendsNumber>
是同质的。我是对的还是我缺少的基本观念?
答案1
小编典典泛型类型比较古怪。
<? extendsNumber>
表示Number或未知的子类。如果获得这样的值,它将是Number
,但是由于您不知道哪个有效,因此无法给出此类型的值。
区别在于参数和返回值。
List<Number> numbers = new ArrayList<Number>();Number n = 1;numbers.add(n); // ok.n = numbers.get(0); // oknumbers.add(1); // ok.List<? extends Number> numbers2 = new ArrayList<Double>();numbers2.add(n); // not okn = numbers2.get(0); // okList<? super Number> numbers3 = new ArrayList<Serializable>();numbers3.add(n); // okn = numbers3.get(0); // not ok.
super
在一些地方用来表示类型可以是超级类型。例如
在集合中,此方法表示比较器需要能够比较相同类型或任何超级类型。
public static <T> void sort(List<T> list, Comparator<? super T> c)
这意味着你可以
Comparator<Number> comparesAnyNumbers = ...List<Integer> ints = ...Collections.sort(ints, comparesAnyNumbers);
" " 和 " " 和有什么不一样?
它们都意味着空间,但是有什么区别吗?
答案1
小编典典一个是不间断空间,另一个是常规空间。不间断的空格意味着该行不应在该点被换行,就像它不会被换行在单词中间一样。
此外,正如 Svend 在他的评论中指出的那样,不间断的空间不会折叠。
#include 和有什么不一样 和 #include “文件名”?
问题:
在 C 和 C ++ 编程语言中,在 include
语句中使用尖括号和引号有什么区别,如下所示?
-
#include <filename>
-
#include "filename"
解决方案:
参考一: https://stackoom.com/question/5cH/include 和有什么不一样 - filename - 和 - include - 文件名参考二: https://oldbug.net/q/5cH/What-is-the-difference-between-include-filename-and-include-filename
#include和有什么不一样 和#include“文件名”?
在C和C ++编程语言中,在include
语句中使用尖括号和引号有什么区别,如下所示?
-
#include <filename>
-
#include "filename"
#1楼
这里有一些很好的答案引用了C标准,但忘记了POSIX标准,尤其是c99(例如C编译器)命令的特定行为。
根据开放团体基本规范第7期 ,
-I 目录
更改搜索名称不是绝对路径名的标头的算法,以在查找普通位置之前先查找由目录路径名命名的目录 。 因此,应首先在带有#include行的文件目录中搜索名称包含在双引号(“”)中的标题,然后在-I选项命名的目录中进行搜索,然后在通常的位置中进行搜索。 对于名称括在尖括号(“ <>”)中的标头,应仅在-I选项命名的目录中搜索标头,然后在通常的位置中搜索。 -I选项中命名的目录应按指定顺序搜索。 实现应在单个c99命令调用中至少支持此选项的十个实例。
因此,在符合POSIX的环境中,使用符合POSIX的C编译器, #include "file.h"
可能会首先搜索./file.h
,其中.
是包含#include
语句的文件所在的目录,而#include <file.h>
可能会首先搜索/usr/include/file.h
,其中/usr/include
是系统定义的常用位置标头(POSIX似乎未定义)。
#2楼
-
#include <>
用于预定义的头文件
如果头文件是预定义的,那么您只需将头文件名写在尖括号中,看起来就像这样(假设我们有一个预定义的头文件名iostream):
#include <iostream>
-
#include " "
用于程序员定义的头文件
如果您(程序员)编写了自己的头文件,则应在头文件名中用引号引起来。 因此,假设您编写了一个名为myfile.h
的头文件,那么这是一个如何使用include指令包括该文件的示例:
#include "myfile.h"
#3楼
简单的通用规则是使用尖括号包含编译器随附的头文件。 使用双引号包括其他任何头文件。 大多数编译器都是这样做的。
1.9 —头文件更详细地说明了预处理程序指令。 如果您是新手程序员,那么该页面应该可以帮助您理解所有内容。 我从这里学到了它,并且在工作中一直在关注它。
#4楼
实际上,区别在于预处理器搜索包含文件的位置。
对于#include <filename>
,预处理器通常以实现依赖方式进行搜索,通常在编译器/ IDE预先指定的搜索目录中进行搜索。 此方法通常用于包括标准库头文件。
对于#include "filename"
,预处理器首先在与包含指令的文件相同的目录中搜索,然后遵循用于#include <filename>
格式的搜索路径。 此方法通常用于包括程序员定义的头文件。
有关搜索路径的GCC 文档中提供了更完整的描述。
#5楼
此处的许多答案都集中在编译器将搜索以查找文件的路径上。 尽管这是大多数编译器的工作方式,但是允许使用标准标头的效果对符合标准的编译器进行预编程,并将#include <list>
视为一个开关,并且它根本不需要作为文件存在。
这不是纯粹的假设。 至少有一个编译器可以这样工作。 建议仅将#include <xxx>
与标准标头一起使用。
.* 和有什么不一样?和 .* 正则表达式?
我正在尝试使用正则表达式将字符串分成两部分。该字符串的格式如下:
text to extract<number>
我一直在使用(.*?)<
并且<(.*?)>
工作正常,但是在稍微阅读了正则表达式之后,我才开始想知道为什么我需要?
在表达式中。我只是在通过这个网站找到它们之后才这样做,所以我不确定有什么区别。
答案1
小编典典这是贪婪量词和非贪婪量词之间的区别。
考虑输入101000000000100
。
使用1.*1
,*
是贪心的 - 它会一直匹配到最后,然后回溯直到它可以匹配1
,留下1010000000001
..*?
是非贪婪的。*
将不匹配任何内容,但随后将尝试匹配额外字符,直到匹配1
,最终匹配101
.
所有量词都有一个非贪婪模式:.*?
, .+?
, .{2,6}?
, 和 even .??
。
在您的情况下,类似的模式可能是<([^>]*)>
- 匹配除大于号以外的任何字符(严格来说,它匹配除>
中间<
和之外的零个或多个字符>
)。
请参阅 量词备忘单 。
关于List和有什么不一样和清单?和list和有什么不一样和清单一样的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于" " 和 " " 和有什么不一样?、#include 和有什么不一样
本文标签: