首页 > 解决方案 > 这个编译器错误到底要我执行什么?

问题描述

提前感谢您的阅读!所以这是代码:

#include<iostream>
#include<vector>

std::vector<int> MonkeyCount(int n);

int main() {

    MonkeyCount(4);

    return  0;


}


std::vector<int> MonkeyCount(int n) {
    std::vector<int> MonkeyCountV;
    for (unsigned int i = 1; i <= n; i++) {

        MonkeyCountV.push_back(i);
    }
    for (unsigned int i = 0; i <= MonkeyCountV.size(); i++) {
        std::cout << MonkeyCount.at(i) << " ";
    }
    return MonkeyCountV;
}

并且错误在第 23 行:错误 C2227:'->at' 的左侧必须指向类/结构/联合/通用类型现在我对此有所了解,但我使用的是我在互联网上找到的一个示例打印一个矢量,在那个例子中,在作品中。例子是这样的:

#include <iostream>
#include <vector>

void print(std::vector<int> const& input);

int main()
{
    std::vector<int> input = { 1, 2, 3, 4, 5 };
    print(input);

    return 0;
}
void print(std::vector<int> const& input)
{
    for (unsigned int i = 0; i < input.size(); i++) {
        std::cout << input.at(i) << ' ';
    }
}

标签: c++vector

解决方案


std::cout << MonkeyCount.at(i) << " ";

应该:

std::cout << MonkeyCountV.at(i) << " ";

您拥有它的方式是尝试在函数本身上执行“.at(i)”。


推荐阅读