我正在学校的实验室工作,并在说明中说:
将定义Word_List的typedef更改为别名声明(使用)
从我用Google搜索过的方式来看,改变方法是:
typedef vector<Word_Entry> Word_List;
Run Code Online (Sandbox Code Playgroud)
至:
using Word_List = std::vector<Word_Entry>;
Run Code Online (Sandbox Code Playgroud)
但是当我编译时,我收到以下错误:
error: expected nested-name-specifier before 'Word_List'
Run Code Online (Sandbox Code Playgroud)
大部分代码:
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <vector>
#include <fstream>
#include <cctype>
#include <iomanip>
using namespace std;
struct Word_Entry
{
string ord;
unsigned cnt;
};
//typedef vector<Word_Entry> Word_List; <-This is what it used to look like
using Word_List = vector<Word_Entry>;
int main()
{
...
}
Run Code Online (Sandbox Code Playgroud)
附加信息:
Yes, I am compiling with c++11
Word_Entry is a struct that stores 2 variables …Run Code Online (Sandbox Code Playgroud) 我正在使用SQL存储过程和动态SQL。当我尝试调试时,一切正常,直到打印出@columnName为止。
这是引起麻烦的代码部分:
DECLARE @query NVARCHAR(2000)
DECLARE @columnName NVARCHAR(250)
SELECT @query = 'SELECT myTable.value FROM myTable WHERE myConditions'
EXECUTE sp_executesql @query, N'@columnName NVARCHAR(30) OUTPUT', @columnName OUTPUT
PRINT N'query='+@query
set @query = ''
PRINT N'query after reset='+@query
PRINT N'columnName='+@columnName
PRINT N'any other message'
Select @query = 'SELECT myValues AS '''+@columnName+''',
FROM myTable2
WHERE myConditions';
EXEC(@query);
Run Code Online (Sandbox Code Playgroud)
这是输出消息:
query=SELECT myTable.value FROM myTable WHERE myConditions
query after reset=
any other message
Run Code Online (Sandbox Code Playgroud)
那么,我的columnName=输出在哪里?
编辑
SQL版本: Microsoft SQL Server 2012-11.0.2100.60(X64)2012年2月10日19:39:15版权所有(c)Windows NT 6.1(Build 7601:Service Pack 1)(Hypervisor)上的Microsoft …
为什么这对我来说很好:
for(int i = 0; i < vec.size(); i++)
{
os << vec[i] << " ";
}
Run Code Online (Sandbox Code Playgroud)
虽然这不是:
for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
os << vec[*it] << " ";
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含临时表的触发器。现在我希望循环遍历临时表并在每一行上执行一些操作。有一些简单的方法可以做到这一点吗?我用谷歌搜索过,但对于这样一个简单的任务来说,一切似乎都过于复杂。
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF NEW.col <> OLD.col THEN
DROP TEMPORARY TABLE IF EXISTS tmpTable;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpTable AS (my select statement);
--For each row in tempTable--
Do something
--
DROP TEMPORARY TABLE tmpTable;
END IF;
END
Run Code Online (Sandbox Code Playgroud) 我有这个树与不同类型的节点,我需要进行深层复制.层次结构看起来像这样:
class AllNodes
{
//this is a purely virtual base class
};
class TreeNode : public AllNodes
{
AllNodes *rChild, *lChild;
};
class LeefNode : public AllNodes
{
int value;
};
Run Code Online (Sandbox Code Playgroud)
问题是,当我想要对整个树进行深层复制时,我不知道哪些节点会有子节点以及哪些节点将具有值.我试过这个,但它不会工作(原因很明显):
void AllNodes::deepCopy(AllNodes* &copied, AllNodes* o)
{
if(o->rChild == nullptr)
copied->rChild = nullptr;
else
{
copied->rChild = o->rChild;
deepCopy(copied->rchild, o->rChild);
}
if(o->lChild == nullptr)
copied->lChild = nullptr;
else
{
copied->lChild = o->lChild;
deepCopy(copied->lChild, o->lChild);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人对如何实现这一点有一些想法?
好的,所以我有这个字符串数组看起来像这样:
myArray[0] = "a0,b0,c0,d0"
myArray[1] = "a1,b1,c1,d1"
myArray[2] = "a2,b2,c2,d2"
myArray[3] = "a3,b3,c3,d3"
etc...
Run Code Online (Sandbox Code Playgroud)
我想创建一个多维数组,使用每个元素的第一部分作为"键".简而言之:
myMultiArray:
x/y| 0 | 1 | 2 | 3 |
------------------------
0 | "a0" | "a1" | "a2" | "a3" |
1 | "b0" | "b1" | "b2" | "b3" |
2 | "c0" | "c1" | "c2" | "c3" |
3 | "d0" | "d1" | "d2" | "d3" |
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
private String[,] resultsParser(String[] inputArray)
{
String[] splittedString = null;
String[,] outputString = null; …Run Code Online (Sandbox Code Playgroud) 我正在学校里完成一项任务,我们应该在我们自己的List类中创建一个构造函数,它将初始化列表作为参数.
这是我希望能够做到的:
List ourList {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
List::List(std::initializer_list<int> il)
{
head_ = copy(il.begin(), il.end());
}
List_Node* List::copy(std::initializer_list<int>::iterator begin,
std::initializer_list<int>::iterator end)
{
if(begin == end)
return nullptr;
List_Node* new_list = new List_Node(*begin);
List_Node* node = copy(begin++, end);
new_list->next_ = node;
return new_list;
}
Run Code Online (Sandbox Code Playgroud)
以我的拙见,这应该很有效.但是,当我尝试初始化(List list {1,2,3};)时,我得到一个seg-fault.有人可以解释一下我在这里做错了吗?
我有一个div,当按下时会添加另一个具有相同类的div.但是当我点击动态添加的元素时,没有任何反应.
$('.container').on('click', function(){
var newColumn = $('<li class="column"/>');
var newState = $('<div class="container" unselectable="on">Nothing</div>');
newState.appendTo(newColumn);
newColumn.appendTo($('#canvas'));
});Run Code Online (Sandbox Code Playgroud)
.container{
border:1px solid black;
width:100px;
height:40px;
text-align:center;
vertical-align:middle;
line-height:40px;
border-radius:10px;
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
.column{
list-style-type: none;
display:inline;
width:100px;
float:left;
margin:10px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="canvas">
<li class="column">
<div class="container" unselectable="on">
works
</div>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)
如何使点击事件适用于所有元素?
我需要在查询中添加一个包含值的列.一个简化的例子:
exampleTable:
ID Fruit
+-----+---------+
| 0 | Apple |
+-----+---------+
| 1 | Pear |
+-----+---------+
Run Code Online (Sandbox Code Playgroud)
我想要一个添加以下硬编码列名+值的查询:
ID Fruit MyFavorite
+-----+---------+-------------+
| 0 | Apple | YES |
+-----+---------+-------------+
| 1 | Pear | NO |
+-----+---------+-------------+
Run Code Online (Sandbox Code Playgroud)
要非常明确:我不想要任何新表,只需要提供此结果的查询.
如何实现这一结果?
编辑:这只是假表的一个例子.我不希望任何更多的表,我并不想改变现有表中的值MyFavorite都应该被硬编码.