首页 > 解决方案 > C++ 我应该使用什么类型的指针来存储“算法”“删除”函数的输出地址?

问题描述

我试图将algorithm removeC++ 中函数返回的地址存储在一个变量中,但找不到一个。我试过int*char*。两者都抛出错误。

使用 Visual Studio CL,错误是: error C2440: '=': cannot convert from '_FwdIt' to 'int *'

使用MinGW,错误是: cannot convert '__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >' to 'int*' in assignment

我应该如何存储这样的地址?

我正在尝试的代码:

#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main (void) {
  string line ("This is an example sentence.");
  int* newEOL;
  newEOL = remove(line.begin(), line.end(), ' ');
  printf("%p\n", newEOL);
}

标签: c++pointersvariables

解决方案


为什么你认为它是一个指针?

正如这里所证明的:https ://en.cppreference.com/w/cpp/algorithm/remove 它是一个迭代器,可以实现为指针,但不是必须的。

auto如果您不想明确指定类型,可以使用关键字。


推荐阅读