gpt4 book ai didi

c++ - C++ int数组中的foreach

转载 作者:可可西里 更新时间:2023-11-01 16:59:22 32 4
gpt4 key购买 nike

我是 C++ 的新手,我正在编写以下代码。我需要遍历调用函数中的所有插件 - testFunction。我知道这在 C# 中有效,但这段代码不起作用。任何人都可以指出在 C++ 中执行此操作的正确方法吗?

#include "stdafx.h"
#include <iostream>
#include "resource.h"

int testFunction(char* tester);
int _tmain()
{
int mainProd=2;
int Addons[]={7,8,9,10};

testFunction(mainProd,Addons);


}
void testFunction(int mainProd,int addons[])
{
for(int x = 0 ; addons.length;++x) ---- Not working
{
std::cout<< addons[x];
}
}

我尝试按照你们的以下建议实现 vector

#include "stdafx.h"
#include <iostream>
#include "resource.h"
#include <vector>

void testFunction(std::vector<int> addons);

int _tmain(int argc, _TCHAR* argv[])
{

std::vector<int> Addons ;
for(int i = 0 ;i<10;++i)
{
Addons.push_back(i);
}
testFunction(Addons);
}

void testFunction(std::vector<int> addons)
{
for(int i =0 ; i<addons.size();++i)
{
std::cout<<addons.at(i);
}
}

最佳答案

数组(原始数组)在作为参数传递给函数时会衰减为指针,因此您的数组没有大小信息。

您需要将数组的长度显式传递给函数以在函数内部知道它。

或者,更好的是,使用 std::vector,这样您就可以在需要时始终使用 .size()

关于c++ - C++ int数组中的foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338660/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com