最近我自学 Rust,并尝试编写 Trie 数据结构。我已经用 C++ 编写了 Trie 代码,如下所示。
struct node_t
{
bool is_end = false;
std::vector<std::pair<char, node_t>> children;
void push(std::string str)
{
node_t* curr = this;
for (size_t i = 0; i < str.size(); i++)
{
char curr_char = str[i];
std::vector<std::pair<char, node_t>>::iterator iter = std::find_if(curr->children.begin(), curr->children.end(), [&](std::pair<char, node_t>& e) { return e.first == curr_char; });
curr = iter != curr->children.end() ?
&iter->second :
(curr->children.push_back(std::make_pair(curr_char, node_t{ false, std::vector<std::pair<char, node_t>>() })), &(curr->children.end() - 1)->second);
}
curr->is_end = true;
}
bool has(std::string str) …Run Code Online (Sandbox Code Playgroud) 我想要像下面这样的双重休息:
[ your title there ]
some kind of content...
Run Code Online (Sandbox Code Playgroud)
在 Rust 中,有两个宏可以打印到标准输入,一个有 like 中断,另一个没有 like 中断。以及一些可能打印的代码,如下所示:
[ your title there ]
some kind of content...
Run Code Online (Sandbox Code Playgroud)
或者
// use println! only for consistency.
println!("[ your title here ]\n"); // i find it awkward because prinln! already has some sort of '\n' in it.
println!("some kind of content...");
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在 Rust 中打印两个或更多换行符?或者其他语言将不带 like 中断的 print 和带单个 like 中断的打印作为单独的函数,如 C#、Java、...等?