我有两个不同类的实例,它们派生自同一个抽象基类.我有一个指向其中一个实例的指针.如何使用相同的指针指向另一个实例?
我有一个wstring变量,我想用空格分割它并放入一个vector
wstring wStr = L"Hello World !";
vector<wstring> vw;
wstring st = L"";
for (int i = 0; i < wStr.length(); i++) {
if (&wStr[i] == L" ") {
vw.push_back(st);
}
else{
st += wStr[i];
}
}
Run Code Online (Sandbox Code Playgroud)
我的结果应该是这样的vector:
你好
世界
!
但如果声明,它不会进入
我有一个小菜单,从菜单开始,玩家可以选择6个选项.从玩家的决定将与被写入cin到一个char变量.这很好用,游戏从选项开始.但是当玩家输入另一个值然后游戏出错时,游戏也会启动.为了解决这个问题,我想使用带有可能选项的字符集.但在每一种方式我尝试将值插入到set变量中我得到编译器错误.
当我尝试初始化set时声明我得到"'a'未在此范围内声明":
set <char> Options {a,b};
Run Code Online (Sandbox Code Playgroud)
如果我这样尝试,"没有匹配函数来调用'std :: set :: insert(const char [2])'|"
set <char> Options {"a","b"};
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我也得到"'a'未在此范围内声明"
set <char> Options;
int main()
Options.insert(a);
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个,但是我再次得到"没有匹配函数来调用'std :: set :: insert(const char [2])'"
set <char> Options;
int main()
Options.insert("a");
Run Code Online (Sandbox Code Playgroud)
所以现在我很困惑.使用整数我没有问题,但是当我尝试将它与字符一起使用时,我没有让它工作.
有人可以帮忙吗?
(这是我的第一个问题,我希望它的配方很好)
我正在尝试使用C++生成一些线程,std::thread但我无法让它工作.如果它有任何区别我正在使用VS 2015.它在线程创建失败(t[thread_id] = std::thread(test);).这是我的代码的相关部分:
void test() {}
void threaded_DFT(std::complex<double>* x, std::complex<double>* X, size_t N) {
std::complex<double>* tmp=(std::complex<double>*)malloc(N * sizeof *tmp);
std::thread* t=NULL;
size_t num_threads;
size_t stages = log2(N);
size_t FFT_8_stages = stages / 3;
size_t remainder_stages = stages % 3;
size_t Ns = 1;
for (size_t i=0, Ns = 1; i < FFT_8_stages; i++,Ns=pow(2,3*i))
{
num_threads = N / 8;
t = (std::thread*)malloc(num_threads * sizeof *t);
if (!t)
exit(EXIT_FAILURE);
for (size_t thread_id = 0; thread_id < …Run Code Online (Sandbox Code Playgroud) 我想知道这段代码是否正确删除了第一个节点,还是我必须将列表的头部作为指针传递?
void List::deleteFirst()
{
temp = head;
head = head->next;
delete temp;
}
Run Code Online (Sandbox Code Playgroud)
这是班级 List
class List
{
private:
struct node
{
int data;
node * next;
};
node * head;
node * curr;
node * temp;
public:
//List();
//void AddNode(int addData);
//void DeleteNode(int delData);
void deleteFirst();
//void PrintList();
};
Run Code Online (Sandbox Code Playgroud)