我有一个Set[String]包含几个字符串的不可变Scala ,比方说{"a", "b", "c"}.我想基本上将它们添加到String看起来像"\"a\",\"b\",\"c\"".我知道我可以创建一个var resultStr并使用for循环来获得结果.但是由于Scala鼓励使用不可变的val而不是val,并且在集合上定义了很多操作,我想知道是否有更优雅的方法来实现结果.
谢谢.
这是我在网站上的第一个问题,尽管我已经来这里参考了很长一段时间.我知道argv [0]存储程序的名称,其余的命令行争论存储在剩余的argv [k]槽中.我也理解std :: cout将字符指针视为空终止字符串并将字符串输出.以下是我的计划.
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << argv[0] << " ";
cout << argv[1] ;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据我在网络搜索中看到的所有其他程序,该程序应该打印两个字符串即.程序名称和命令行争论.控制台窗口显示
0010418c 001048d6
我相信这些是指向argv [0]和argv [1]的指针.我唯一的命令行争论是"nanddumpgood.bin",它在argv [1]中并且如果我在调试时鼠标悬停在argv []数组上则正确显示字符串.
这发生了吗?我究竟做错了什么?我明白,在特殊情况下,数组会衰减到指针吗?这是不是吗?
我正在编写代码来递归地从BST中删除一个节点,主要是作为一个研究练习来实现复原并验证我对我使用过的某些编码元素的理解.在这种情况下,问题似乎是通过引用将指针传递给我的BST节点.
我的BST代码的psrt如下.(这不是我要实现或使用的代码.只是一个练习.我选择BST作为一个例子来实现我想用语言尝试的一些东西)
标题 -
//BST.h
class TNode
{
public:
TNode():data(0), left(0), right(0) {}
int data;
TNode* left;
TNode* right;
};
class BST
{
private:
TNode* Head;
public:
BST();
void InsertData(int data);
void InsertNode(TNode* node);
void DeleteData(int data);
private:
void InsertDataPrivate(int data, TNode* &root);
void InsertNodePrivate(TNode* node, TNode* &root);
void DeleteDataPrivate(int data, TNode* &root);
};
Run Code Online (Sandbox Code Playgroud)
CPP -
//BST.cpp
#include "BST.h"
BST::BST(): Head(0)
{
}
void BST::InsertData(int data)
{
InsertDataPrivate(data, Head);
}
void BST::InsertNode(TNode* node)
{
InsertNodePrivate(node, Head);
}
void BST::DeleteData(int data) …Run Code Online (Sandbox Code Playgroud)