求素数,用vector存储的实现方法
// tentotwo.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
void GetPrimer(int n, vector<int>& vet)
{
for (int i = 2; i <= n; i++)
{
vet.push_back(i);
}
vector<int>::iterator ite = vet.begin();
while (ite != vet.end())
{
vector<int>::iterator tmpite = ite + 1;
while (tmpite != vet.end())
{
if ((*tmpite)%(*ite) == 0)
{
tmpite = vet.erase(tmpite);
}
else
{
tmpite ++;
}
}
ite ++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> vet;
GetPrimer(100, vet);
vector<int>::iterator ite = vet.begin();
while (ite != vet.end())
{
cout << *ite << " ";
ite ++;
}
cout << endl;
return 0;
}
相关推荐
-
vector,map,list,queue的区别详细解析
1.vector (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销. 2.deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末尾插入元素,随机的插入,删除元素要慢,空间的重新分配要比vector快,重新分配空间后,原有的元素
-
vector与map的erase()函数详细解析
vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it) 这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效! map则可以直接erase(it++): vector和map都不能将it++写在for循环中,而在循环体内erase(it)! 复制代码 代码如下: void main(){ vector<int> v; v.push_back(1); v.pus
-
stl容器set,map,vector之erase用法与返回值详细解析
总结本人在工作中经验教训. 在使用 list.set 或 map遍历删除某些元素时可以这样使用: 正确使用方法1 复制代码 代码如下: std::list< int> List; std::list< int>::iterator itList; for( itList = List.begin(); itList != List.end(); ) { if( WillDelete( *itList) ) {
-
c++中vector<int>和vector<int*>的用法区别
在使用STL容器(比如map.list.vector等)的时候,是用放一个对象还是放一个对象指针,即是用vector<int>还是vector<int*>,这里的vector可以换成其他的容器,int可以换成其他基本类型,也可以自定义的数据结构或类. 首先,要说明的是,这两种方式,怎么用都可以实现功能,把一组整型数放到容器里.先看看两种方式在使用的时候的区别. 1.vector<int> 复制代码 代码如下: vector<int> vecTemp;for
-
关于STL中vector容器的一些总结
1.vector的简单介绍 vector作为STL提供的标准容器之一,是经常要使用的,有很重要的地位,并且使用起来也是灰常方便.vector又被称为向量,vector可以形象的描述为长度可以动态改变的数组,功能和数组较为相似.实际上更专业的描述为:vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.(注:STL的容器从实现的
-
大家注意vector, list, set, map成员函数erase
复制代码 代码如下: #include <iostream>#include <vector>#include <list>#include <iterator>using namespace std; void Remove1(vector<int> &vec, int num){ vector<int>::iterator iter; for (iter=vec.begin(); iter!=vec.end(); ++it
-
求素数,用vector存储的实现方法
PS:如有不足之处,还望指正! 复制代码 代码如下: // tentotwo.cpp : 定义控制台应用程序的入口点.#include "stdafx.h"#include <iostream>#include <vector>using namespace std;void GetPrimer(int n, vector<int>& vet){ for (int i = 2; i <= n; i++) { vet.push_back
-
C语言中判断素数(求素数)的思路与方法实例
目录 前言 思路1实现: 思路2实现: <C与指针>4.14-2: 补充:判断素数的4种方法实例 总结 前言 素数又称质数.所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除. 思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数. 思路2):判断方法还可以简化.m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去
-
JS 用6N±1法求素数 实例教程
用6N±1法求素数 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,-) 显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数.所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数). 根据上述分析,我们可以构造另一面筛子,只对形如6 N±1的自然数进行筛选,这样就可以大大减少筛选的次数,从而进一步提高程序的运行效率和速度. 以下代码需要自然数大于
-
Java求素数和最大公约数的简单代码示例
Java小例子:求素数 素数(质数)指的是不能被分解的数,除了 1 和它本身之外就没有其它数能够整除.这里是一个小例子,说明如何求取十万以内的所有素数. 素数的分布没有规律可言,所以要检验一个数是不是素数,就必须将它同所有小于它的数作除法.不过有一个简便的方法,就是不需要检验所有小于它的数,而只要检验所有小于它的素数.如果所有小于它的素数都不能将其整除,那么它就是素数. public class Primes { public static void main(String[] args)
-
PHP使用Redis替代文件存储Session的方法
本文实例讲述了PHP使用Redis替代文件存储Session的方法.分享给大家供大家参考,具体如下: PHP默认使用文件存储session,如果并发量大,效率非常低.而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session. 这里,介绍下php的session_set_save_handler 函数的作用和使用方法.该函数定义用户级session保存函数(如打开.关闭.写入等). 原型如下: bool session_set_save_hanler(callback
-
JS实现本地存储信息的方法(基于localStorage与userData)
本文实例讲述了JS实现本地存储信息的方法.分享给大家供大家参考,具体如下: WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题. sessionStorage与localStorage Web Storage实际上由
-
Python实现求两个csv文件交集的方法
本文实例讲述了Python实现求两个csv文件交集的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python rd3 = open('data_17_17_2.csv') base = open('data_17_17_3.csv') wr3 = open('delNoBuyed3DayAndStoreAndInCar4.5.2.csv','w+') bsData = base.readlines() i = 1 for key in rd3: if key in bs
-
C++求四个正整数最大公约数的方法
本文实例讲述了C++求四个正整数最大公约数的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 16 日 * 版 本 号:v1.0 * * 输入描述: 输入四个正整数,输出其最大公约数. * 问题描述: * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> using namespace std; int f(int,int); int g(int,int,int,int); int main()
-
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
本文实例讲述了Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法.分享给大家供大家参考,具体如下: 1.首先安装memcache服务端: sudo apt-get install memcached 安装完成后系统 自动启动了 memcached服务占用11211端口 如需重新配置11211端口的服务 需要关闭已开启的memcached服务 手动启动: memcached -d -m 128 -p 11211 -u memcache
-
C#利用Random得随机数求均值、方差、正态分布的方法
本文实例讲述了C#利用Random得随机数求均值.方差.正态分布的方法.分享给大家供大家参考.具体如下: 最近在做中小学试卷分析系统,其中数据的分析让自己很头疼,整个系统采用B/S架构.在分析试卷难度梯度的时候需要用到正态分布,自己做了一些,也查阅了一些资料,终于掌握了将一组数据分析检验,最后生成正态分布. (1)利用随机函数rand()生成(0,1)区间的100个均匀分布随机数: (2)计算这100个均匀分布随机数的均值和方差, (3)将这100个均匀分布的随机数,及其均值和方差保存到文本文件
随机推荐
- FusionCharts图表显示双Y轴双(多)曲线
- VBS教程:函数-UBound 函数
- PHP简单开启curl的方法(测试可行) 原创
- 如何设置mysql允许外网访问
- python文件比较示例分享
- C#求数组中元素全排列的方法
- C#中文件名或文件路径非法字符判断方法
- 九宫图比较常用的多控件布局(GridView)使用介绍
- Symfony2中被遗弃的getRequest()方法分析
- dos下用recover修复损坏的TXT文件
- Sql学习第三天——SQL 关于with ties介绍
- 在textarea输入Tab
- js+数组实现网页上显示时间/星期几的实用方法
- 让网页根据不同IE版本显示不同的内容
- Android用户注册界面简单设计
- linux c 获得当前进程的进程名和执行路径(示例)
- PHPCMS手机站伪静态设置详细教程
- PHP查询附近的人及其距离的实现方法
- Android左滑返回功能的实现示例代码
- 异步http listener 完全并发处理惩罚http恳求的小例子