【发布时间】:2011-06-12 02:45:16
【问题描述】:
在 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 替换为a.size,但没有成功。
修订:
#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;
}
}
它没有运行就崩溃了。这是什么原因?
【问题讨论】:
-
你也会遇到范围问题。要正确使用向量,您必须为其指定大小或使用
push_back。 -
@TimeCoder:无意冒犯,但试图通过在 SO 上发帖来学习 C++ 编程(编辑)会浪费您和我们的时间。
-
与您刚刚发布的 99% 相似问题 stackoverflow.com/questions/4741436/boundless-arrays 相同或替代。
-
@Tomalak:这个人正在尝试使用
std::vector,正如另一个人的答案中所建议的那样。是的,他们应该被链接,不,这不是骗局。 -
@PigBen:你在开玩笑吗? 32 行代码 sn-ps 实际上是相同的!另一个根本不是关于向量的。诡异的。他应该扩展他最初的问题,因为他只是建立在他得到的回答的基础上。他应该在 that 线程上解决有关这些响应的问题。
标签: c++ translation primes