小编kev*_*vin的帖子

如何使用迭代器导航向量?(C++)

目标是访问字符串向量的"第n"元素,而不是[]运算符或"at"方法.根据我的理解,迭代器可用于浏览容器,但我以前从未使用过迭代器,而我正在阅读的内容令人困惑.

如果有人能给我一些如何实现这一目标的信息,我将不胜感激.谢谢.

c++ iterator vector

95
推荐指数
4
解决办法
31万
查看次数

编写LinkedList析构函数?

这是一个有效的LinkedList析构函数吗?我仍然对他们感到困惑.

我想确保我正确理解这一点.

 LinkedList::~LinkedList()
 {
   ListNode *ptr;

   for (ptr = head; head; ptr = head)
   {
     head = head->next
     delete ptr;
   }
}
Run Code Online (Sandbox Code Playgroud)

因此,在循环开始时,指针ptr被设置为保存head的地址,即列表中的第一个节点.然后将head设置为下一个项目,该项目将在第一次删除后成为列表的开头.ptr被删除,第一个节点也是如此.在循环的第一次迭代中,指针再次设置为head.

关注我的事情是到达最后一个节点.条件"头;" 应检查它是否为空,但我不确定它是否会起作用.

任何帮助赞赏.

c++ destructor linked-list

13
推荐指数
2
解决办法
6万
查看次数

将变量声明为"Class"数据类型,而不调用"Class"构造函数?

请原谅我,如果我只是公然缺少某些东西,但我正在尝试从结构和c转换为类和c ++.

继承人我正在做的事情:

A有一个"Checkers"类和一个"Board"类.

现在使用结构,我可以通过执行以下操作在我的"board.cpp"文件中创建一个Checkers数组:

Checker checkers[2][12]

(每边0和1,每件0-11)

问题是,对于类,执行相同的声明将尝试调用"Checkers"构造函数.我收到此错误:"错误:没有匹配函数调用'Checker :: Checker()'"

我的Checker构造函数处理初始化单个部分(如果它在0或1侧,0-11部分),所以我不打算在那里调用它.

有没有办法避免这种情况,或者我是否采取了错误的方式?谢谢.

编辑:或者我可能只是设计构造函数来初始化一个检查器数组?你甚至可以将变量声明为类/对象的数据类型吗?

c++ constructor class

3
推荐指数
1
解决办法
1576
查看次数

Unsticky一个cout修饰符?

  cout << hex << 11 << endl;
  cout << 12 << endl;
Run Code Online (Sandbox Code Playgroud)

将打印:

一个

b

如果我小丑13,它将被打印为'c'.如何从现在开始删除十六进制修改器,以便它只打印13?这可能很简单,但我试着在其他地方寻找答案.谢谢.

c++ cout

3
推荐指数
2
解决办法
542
查看次数

在队列中分配值时front()和back()的目的是什么?(C++)

我宣布:

queue<int, list<int> > Q
Run Code Online (Sandbox Code Playgroud)

一系列电话后:

Q.push(37);
Q.pop();
Q.push(19);
Q.push(3); 
Q.push(13); 
Q.front(); 
Q.push(22); 
Q.push(8);
Q.back();
Run Code Online (Sandbox Code Playgroud)

我得到:19-> 3-> 13-> 22-> 8-> NULL

我没有得到的是对Q.front()和Q.back()的调用.根据我的理解,他们分别返回对第一个或最后一个元素的引用,但是我没有看到如果没有进行这些调用,我的列表会有什么不同.他们有任何影响吗?

对不起,如果这看似微不足道,但我想弄清楚这些电话是否有目的,或者我的教授只是试图搞砸我.

c++ queue linked-list

2
推荐指数
1
解决办法
511
查看次数

在c中使用fread时,为什么要将结构转换为char*?

假设我有一个"Passenger"结构,它有一个名称字段.

如果我这样做(就像我的书的语法显示):

fread(&passenger, sizeof(Passenger), 1, in_fp);
printf("%s", (*passenger).first_name)
Run Code Online (Sandbox Code Playgroud)

我遇到了分段错误,但如果我这样做:

fread( (char *)passenger, sizeof(Passenger), 1, in_fp);
printf("%s", (*passenger).first_name)
Run Code Online (Sandbox Code Playgroud)

从文件中读取的名称将被打印出来.

c

1
推荐指数
1
解决办法
985
查看次数

我究竟如何使用makefile?

我此刻真的很困惑.

所以我有5个文件:main.c,flight.c,flight.h,passenger.c和passenger.h

flight.h有flight.c的函数原型,passenger.h有passenger.c的函数原型

flight.c和passenger.c有这些功能的定义.

main.c是我将与之交互的程序,从两个.c文件调用函数

我不太确定.o文件的用途是什么,请有人解释一下吗?这是我的Makefile:

flight.o: flight.c flight.h
    gcc -Wall -g -c flight.c    
passenger.o: passenger.c passenger.o
    gcc -Wall -g -c passenger.c    
main.o: main.c
    gcc -Wall -g -c main.c     
reservations.out: main.o flight.o passenger.o
    gcc -Wall -g flight.o passenger.o main.o -o reservations.out
Run Code Online (Sandbox Code Playgroud)

编辑:然后我使用命令"make Makefile",并得到一个错误:make:没有什么可以为`Makefile'做.

在我的文件中,gcc之前有一个标签.我很感激任何帮助,我确信有很多事情我做错了.谢谢.

c makefile

1
推荐指数
1
解决办法
2602
查看次数

在循环(BASH)中回显命令的参数时排除$ 0?

我正在尝试使用for循环来获取以.cpp结尾的文件的文件名.

码:

for cppfile in ls *.cpp ; do 
echo $cppfile
done
Run Code Online (Sandbox Code Playgroud)

我打算做的不仅仅是回应这个论点,但是现在看来,除了我得到命令作为第一个论点之外,它的工作正常.有一种简单的方法可以避免这种情况,还是我必须以另一种方式进行循环?

unix bash

1
推荐指数
1
解决办法
129
查看次数

我是否仅在函数头或声明中指定异常类型?(C++)

  SVector.H:

  void pop_back() throw (underflow_error);
Run Code Online (Sandbox Code Playgroud)

在我的SVector.cpp文件中,我是否还应该包含throw(underflow_error)部分?

void pop_back() throw (underflow_error)
{
    // implementation
}
Run Code Online (Sandbox Code Playgroud)

要么

void pop_back()
{
    // implementation
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ exception-handling exception throw

1
推荐指数
1
解决办法
125
查看次数

将9x9 2d阵列划分为9个子网格(如数独)?(C++)

我正在尝试编码一个数独求解器,我试图这样做的方法是有一个9x9指针网格,其中包含具有解决方案或有效可能值的"set"对象的地址.

我能够通过2个for循环遍历数组,首先遍历每一列,然后转到下一行并重复.

但是,我很难想象如何指定特定单元属于哪个子网格(或框,块等).我最初的印象是在for循环中有if语句,例如如果row <2(行从0开始)&col <2那么我们在第一个块中,但这似乎变得混乱.有没有更好的方法来做到这一点?

c++ sudoku multidimensional-array

1
推荐指数
1
解决办法
4312
查看次数