我有以下单链表实现.
template <typename T> struct node{
node(T data):data(data),next(nullptr){}
T data;
node<T> * next;
};
template< typename T> class slist{
node<T>* head;
int size;
public:
slist(node<T>* head):head(head), size(0){}
slist(const slist<T>& rhs){
node<T>* temp = rhs.getHead();
node<T>* p = new node<T>(temp->data);
head = p;
node<T>* current = p;
while(temp != nullptr){
current = current->next;
current->data = temp->data;
}
}
~slist(){
if(head == nullptr) return;
while(head != nullptr){
node<T>* current = head;
head = head->next;
delete(current);
}
}
slist& operator= (const slist& rhs){ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从C++中的命令行读取多行输入并将它们存储到一个数组中.这是我的代码.
std::string line;
int in;
std::vector<std::string> v;
while(std::getline(std::cin, line)){
if(line == "^D") break;
v.push_back(line);
}
for(auto it = v.begin(); it != v.end(); it++){
std::cout<<*it<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
stdin进入无限循环,我似乎无法弄清楚如何防止这种情况.基本上,目标行为是连续两次按Enter而没有任何输入应该终止stdin循环并运行程序.
我有一个以下类型的结构
typedef struct Edge
{
int first;
int second;
}Edge;
Run Code Online (Sandbox Code Playgroud)
我在我的main函数中实例化并复制到数组中
Edge h_edges[NUM_EDGES];
for (int i = 0; i < NUM_VERTICES; ++i)
{
Edge* e = (Edge*)malloc(sizeof(Edge));
e->first = (rand() % (NUM_VERTICES+1));
e->second = (rand() % (NUM_VERTICES+1));
memcpy(h_edges[i], e, sizeof(e));
}
Run Code Online (Sandbox Code Playgroud)
我一直遇到以下错误.
src/main.cu(28): error: no suitable conversion function from "Edge" to "void *" exists
Run Code Online (Sandbox Code Playgroud)
第28行是memcpy发生的行.任何帮助赞赏.