小编gle*_*ell的帖子

用于在列表中查找min的c ++语法

我看到关于这个主题的一些复杂的讨论,但我没有做出应该是一个非常简单的代码工作.我找到了两种方法使它工作,但我对一些语法问题感到困惑.我只是想在列表中找到最小值.这有效:

using namespace std;

#include <iostream>
#include <list>
#include <algorithm>

int main(void)
{
  auto init_list = {10, 20, 30};
  list<int> alist(init_list);

  list<int>::iterator minnum = min_element(begin(alist), end(alist));

  cout << "The min in the list is: " << *minnum << endl;
  return(1);
}
Run Code Online (Sandbox Code Playgroud)

但是还有min()的定义,它将initializer_list作为参数.我想我误解了它的语法.因为我已经定义了一个我可以调用的init_list

int minint = min(init_list);
Run Code Online (Sandbox Code Playgroud)

这很有效.但我不明白为什么.关于min的文档说这个调用应该是以下形式:

template< class T, class Compare >
T min( std::initializer_list<T> ilist, Compare comp );
Run Code Online (Sandbox Code Playgroud)

所以我不应该指定一个<比较运算符才能使用它(显然不是......为什么?)?但是,我不知道如何正确传递此操作符,并且无法得出明确的解释.以下各项都会产生各种语法错误:

int minint = min(init_list, operator<);
int minint = min(init_list, int::operator<);
Run Code Online (Sandbox Code Playgroud)

我该如何通过运营商?显然,在这种情况下并不重要,但如果我的列表不是一个int列表,而是一些带有重载运算符的自定义类型的列表,那么我是否需要传递一个运算符<?或者语法是否只是意味着类T必须定义比较运算符,但您不必在min函数调用中指定它?

c++ syntax list min

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

将指向派生类中的成员函数的指针转换为指向抽象成员函数的指针

我正在尝试做一些看起来应该相当常见的事情,但我找不到任何人讨论它。 stackoverflow 上的这篇文章与我想要做的类似,但不完全相同。

我有一个抽象基类:

#ifndef _ABASECLASS_H_
#define _ABASECLASS_H_

using namespace std;

#include <iostream>

#define CALL_MBR_FUNC(object, ptr_to_mem_func) ((object).*(ptr_to_mem_func))

class aBaseClass
{
public:

  typedef void (aBaseClass::*aBaseClass_mem_func)();

  int A;
  int B;

  aBaseClass();

  aBaseClass(int a, int b);

  virtual void function1(aBaseClass_mem_func infunc) = 0; 

  virtual void function2() = 0; 

};

#endif /* _ACLASS_H_ */
Run Code Online (Sandbox Code Playgroud)

我有一个派生类:

#ifndef _ASUBCLASS_H_
#define _ASUBCLASS_H_

using namespace std;

#include <iostream>
#include "aBaseClass.h"


/* A simple class containing two ints and some functions to demonstrate passing via various methods. …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance pointer-to-member

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

标签 统计

c++ ×2

inheritance ×1

list ×1

min ×1

pointer-to-member ×1

syntax ×1