初识string,vector,bitset

目录

1.cin

2.getline

3.string

4.vector

5.迭代器

6.bitset


1.cin

cin >> s

①读取并忽略开头所有的空白字符

读取字符直到再次遇到空白字符停止

2.getline

遇到换行符停止

string line;
getline(cin, line);  //读取内容保存至line中,不包含换行符

3.string

①计算string的长度时,定义的长度变量和索引变量最好定义为string::size_type类型而非int类型,由于int 存储的长度可能溢出。

②字符串s2后面追加s1

s2 += s1;

sting中的+操作符的左右操作数必须至少有一个是string类型的

string s1 = "hello";
string s2 = s1 + "world"; //正确
string s3 = "hello" + "world"; //错误
string s4 = s1 + " " + "world"; //正确

4.vector

①vector不是一种数据类型,而是一个类模板。vector<int>,vector<string>才是数据类型。

②string 和 vector都可以有=, == ,!=, <=,<操作比较两个vector或是string。

c++中习惯用 != 而不是 < 来编写循环判断条件。

5.迭代器

①所有的标准库容器都定义的相应的迭代器类型,更常用此方法遍历。

vector<int>::iterator iter = arr.begin();  //指向第一个元素的位置 iter理解成一个指针
arr.end();  //指最后一个元素的下一个

②可以用 == 和 != 操作符比较两个迭代器,若两个迭代器指向同一个元素,则它们相等,否则不等。

③const_iterator定义的变量,只能读取容器内的元素值,不可以修改其值。

    const vector<int> ::iterator:指的是迭代器所指的位置不能发现变化。

    注意:vector<int> const_iterator  和 const vector<int> iterator 的区别

6.bitset

①包含头文件  #include<bitset>       using std::bitset;

bitset类型对象的区别仅在其长度而不在其类型

bitset<32>bitvec; //定义32位,为0
//以0开始的位是低阶位,以31结束的位是高阶位
bitset<64>bitvec2(0xffff); //0-31置为1,32-63置为0

③用string对象初始化bitset对象:string对象直接表示为位模式,从string对象读入位集的顺序是从右向左

string strval("1100");
bitset<32>bitvec3(strval);  //只有第2位和第3位为1,其他都为0

④方法

b.any(); //b中存在1的二进制位返回true,否则false
b.count(); //b中1的二进制位个数
b.size(); //b的二进制位数
b[idx];  //访问idx处的二进制位
b.set(); //二进制中的所有位都置为1
b.reset(); //二进制中的所有位都置为0
b.flip();  //二进制中的所有位取反
b.flip(idx);//二进制中的idx位取反
b.to_ulong(); //返回一个unsigned long的值

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值