[英]How to display the strings from a list of strings that contain all the chars from a char array? c#
[英]Using of Array of chars (char[]) instead of strings in c#
C语言中没有字符串这样的概念,对吧? 所以,我想知道:在现代语言中使用字符数组而不是字符串可以节省任何内存优势,例如C#。
在Python中,如果我正确理解你,答案是“它取决于”。 (我在方便时使用python,你说“任何现代语言”)
我创建了一个创建字母表字符数组的函数,另一个函数创建了一个字母表字符串。 然后每100万次运行它们。
与字符串数组的.5秒相比,字符数组花了大约1.7秒。
“也许这是一件令人头疼的事情?” 你可能会问。
好的:我在全局初始化它们,然后通过循环(100万次)运行每个迭代,将一些变量设置为当前字母。
字符数组为7.7秒,字符串为9秒。
“如果你正在寻找一个特定元素怎么办?”
我浏览了每个变量,看看'z'是否在元素中。 char数组花了1.8秒对弦0.4秒。
“那很有意思,也许这只是一个任务?”
我的最后一个测试是在没有分配任何东西的情况下迭代。 同样,char数组比3.9秒的字符串迭代速度快3.9秒。
所以看起来Strings在初始创建和搜索方面更快(我也假设排序,但我不打算编写排序函数来查找),而字符数组对于迭代事件更快(对于数组/字符串中的每一个) 。
希望这可以帮助。
PS - 我的第一个测试类的代码:
#!/usr/bin/env python
import dis
import time
def char_func():
my_c_var = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
#print my_c_var
def stri_func():
my_s_var = "abcdefghijklmnopqrstuvwxyz"
#print my_s_var
start_time = time.time()
for i in range(1000000):
char_func()
print("--- %s seconds ---" % (time.time() - start_time))
start_time = time.time()
for i in range(1000000):
stri_func()
print("--- %s seconds ---" % (time.time() - start_time))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.