C ++向量元素计数
在C ++中,使用矢量头,如何找到元素的数量?
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
int primer(int max);
int main()
{
system("pause");
return 0;
primer(1000);
}
int primer(int max){
vector<int> a;
a[1]=2;
for (int i=2;i<=max;i++){
bool prime=true;
for (int ii=1;ii<=#a;ii++) {
if i/a[ii]==math.floor(i/a[ii]) {
prime=false;
}
}
if prime==true {
a[#a+1]=i;
}
}
for (i=1;i<=#a;i++) {
cout << a[i]);
}
}
}
我最初写的代码
对于lua,这是我尝试将其转换为C ++。我会很感激具体细节,例如,对坏线的特定替代品。我试图用a.size替换#a,但它没有用。
修订:
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
int primer(int max);
int main()
{
primer(5);
system("pause");
return 0;
}
int primer(int max){
vector<int> a;
a[1]=2;
for (int i=2;i<=max;i++){
bool prime=true;
for (int ii=0;ii<a.size();ii++) {
if (i/a[ii]==floor(i/a[ii])) {
prime=false;
}
}
if (prime==true) {
a.push_back(i);
}
}
for (int iii=0;iii<=a.size();iii++) {
cout << a[iii] << endl;
}
}
它没有运行就崩溃了。这是为什么原因?
没有找到相关结果
已邀请:
5 个回复
膛嵌墒缅欠
。 我建议使用某种参考材料,例如: http://cplusplus.com/reference/stl/vector/。
惜堡沁戚
但是您的代码还有其他一些问题:
通常你需要预先设置
的大小,因为C ++必须为它分配空间。你可以使用
,它会根据需要逐步增加空间。 此外,C ++数组从0开始计数:
这应该是
由于数组从0开始,它们以
结束,而不是
。
渐首洽陈染
C和C ++数组索引从零开始并以大小为1结束,因此您需要比较小于,而不是小于或等于。矢量遵循相同的规则。
稍惮
你的功能永远不会被调用。主要退货时,您的应用会退出。
吐兄
更改为使用size()变为:
这在语法上是正确的,但保证是错误的。它应该是:
阅读Oli引用的API。