近容器之string(C++)

概述

  1. 近容器常见的有4种:C语言式数组、string、bitset、valarray。
  2. <string.h>和支持对c语言风格字符串进行操纵的C库字符串函数,但不支持string类。
  3. string类:实际上是模板具体化basic_string的一个typedef,同时省略了与内存管理相关的参数· ·

对于类而言,最重要的内容之一是:有哪些方法可用于创建其对象。

具体用法

0. 头文件

#include<string>

1. 构造函数

	const int size = 1024;
	int bitNumber = 1;

	bitset<size> b;//b中每位均初始化为0
	bitset<size> b1;//b中每位均初始化为0
	

2. 常用函数(查询)

	b.size();//返回b中的位数

	b.count();//返回b中设置的位数

	b.any();//在b中的位设置时返回true

	b.none();//在b中的位没有被设置时返回true

	b[bitNumber];//返回bitNumber的引用
	
	b.at(bitNumber);//首先对bitNumber进行范围检查,如果在范围之内,at返回该位的引用,否则抛出out_of_range异常

	b.test(bitNumber);//首先对bitNumber进行范围检查,如果在范围之内,test在位打开时返回true,位关闭时返回false,否则抛出out_of_range异常

	if (b == b1)
		cout << "b和b1相等";
	if (b != b1)
		cout << "b和b1不相等";


3. 常用函数(操作)

	b.set(bitNumber);//bitNumber位设置为“开”
	b.set();//b中的所有位设置为“开”

	b.reset(bitNumber);//bitNumber位设置为“关”
	b.reset();//b中的所有位设置为“关”

	b.flip(bitNumber);//将bitNumber位翻转
	b.flip();//将b的所有位翻转
	

4. 应用

4.1 判断是否为质数

bool checkPrimeNumber(int num) {
	const int size = 1024;	
	bitset<size>b;
	b.flip();//将所有位设置为打开
	int finalBit = sqrt(b.size()) + 1;

	//将所有非质数的位设置为关闭
	for (int i = 2; i < finalBit; i++) {
		if (b.test(i)) { //检查边界,若位为打开则返回true
			for (int j = 2 * i; j < size; j += i) { //将所有i的倍数的位设置为关闭
				b.reset(j);
			}
		}
	}

	if (b[num])
		return true;
	else
		return false;
}


int main() {
	int num = 0;

	cout << "请输入1~1023要判断的数:";
	cin >> num;

	while (num != -1) {
		cout << num << (checkPrimeNumber(num) ? "是" : "不是") << "质数" << endl;
		cout << "请输入1~1023要判断的数:";
		cin >> num;
	}

	system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值