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;
    }
}
它没有运行就崩溃了。这是为什么原因?     
已邀请:
a.size()
。 我建议使用某种参考材料,例如: http://cplusplus.com/reference/stl/vector/。     
要回答您的直接问题:
a.size();  // use size as a function
但是您的代码还有其他一些问题:
vector<int> a;
a[1]=2;
通常你需要预先设置
a
的大小,因为C ++必须为它分配空间。你可以使用
push_back()
,它会根据需要逐步增加空间。 此外,C ++数组从0开始计数:
for (int ii=1;ii<=#a;ii++) {
这应该是
ii = 0
由于数组从0开始,它们以
size() - 1
结束,而不是
size()
。     
for( int ii = 0; ii < a.size(); ++ii )
C和C ++数组索引从零开始并以大小为1结束,因此您需要比较小于,而不是小于或等于。矢量遵循相同的规则。     
需要指出的另一个明显问题是:
int main()
{
    system("pause");
    return 0;
    primer(1000);
}
你的功能永远不会被调用。主要退货时,您的应用会退出。     
 a[#a+1]=i;
更改为使用size()变为:
 a[ a.size() + 1 ] = i;
这在语法上是正确的,但保证是错误的。它应该是:
 a.push_back(i);
阅读Oli引用的API。     

要回复问题请先登录注册