我有一个列表,我创建如下:
tab([(top,left),(top,middle),(top,right),(center,left),(center,middle),
(center,right),(bottom,left),(bottom,middle),(bottom,right)]).
Run Code Online (Sandbox Code Playgroud)
我希望创建一个全局变量AllPosition,它是一个选项卡.所以我做了以下事情:
tab(AllPos).
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
然后我必须遵循问题:我有一个函数,在选项卡中接收其中一个.我希望删除.所以我这样做了:
place(Line, Column, Tab) :-
AllPos \== [_,_] /*while AllPos isn't empty - not sur if this is done this way*/ -> (member((Line,Column), AllPos) -> (erase(AllPos, (Line,Column), AllPos)).
Run Code Online (Sandbox Code Playgroud)
erase(List, Element, NewList)
从List 中删除元素Element并创建一个新列表NewList等于List但没有Element.这两个函数member
和erase
正在工作.
事情是......你可能已经注意到我AllPos
到处都用.这是因为我想,我想修改它,以便我可以在以后使用它(在从中移除一些元素之后),在另一个函数中.我的逻辑是对的吗?我能在另一个函数中使用修改过的AllPos吗?谢谢
我正在尝试创建一个接收大量行和列的函数,并从中生成一个数组.这就是我做的
(defun create-table (lines columns)
(make-array '(lines columns)))
Run Code Online (Sandbox Code Playgroud)
我认为这就是你制作多维数组的方法.但是当我调用函数时create-table
,例如(create-table 2 2)
给出了这个错误
MAKE-ARRAY:维度LINES不是`(INTEGER 0(,ARRAY-DIMENSION-LIMIT))
我不明白,怎么可能不是整数?我应该演员吗?
所以,我有一个std::map<int, my_vector>
,我想通过每个int并分析向量.我还没有完成分析矢量的部分,我还在试图弄清楚如何浏览地图上的每个元素.我知道有可能有一个迭代器,但我不太明白它是如何工作的,而且,我不知道是否有更好的方法来做我打算做的事情
在我的程序中,在某些时候,我制作了一个scanf(" %d %d", &num1, &num2);
并且我不断获得SegmentationFault.我不明白为什么......我的意思是,他们是int
.我不确定我是否应该为他们分配内存.这是完整的代码.
typedef struct my_type{
int attr1;
bool attr2;
} my_type;
int main (int argc, char * const argv[]) {
int testCase, result, totalDom, numLines, num1, num2;
int aux_map_int = 0, linesScanned = 0;
bool firstTime;
scanf("%d\n %d %d", &testCase, &totalDom, &numLines);
printf("totalDom: %d; numLines: %d\n", totalDom, numLines);
std::map<int, std::vector<my_type> > my_map;
while(aux_map_int < testCase+1){
std::vector<my_type> my_vector;
firstTime=true;
while (linesScanned < numLines) {
std::cin>>num_dom>>num_next_dom; /** SEGFAULT **/
if(firstTime){
my_vector[0].attr1 = num1;
my_vector[0].attr2 = …
Run Code Online (Sandbox Code Playgroud)