- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2.2 vector对象的操作 【例 3.4】vector的操作示例一。 #include iostream #include vector using namespace std; int main( ) { vectorint ivec; // 空vector // 索引数据类型是vectorT::size_type,这里是vectorint::size_type for (vectorint::size_type index = 0; index 7; ++ index) { ivec.push_back(index) ; // 尾插 } for (vectorint::size_type idx = 0; idx != ivec.size( ); ++idx) { cout ivec[idx] , ; // 下标运算符[ ] } cout endl; for (vectorint::size_type ix = 0; ix != ivec.size( ); ++ix) { ivec.at(ix) = ix * ix; cout ivec.at(ix) , ; // at( )函数 } cout endl; return 0;} 运行结果: 0, 1, 2, 3, 4, 5, 6, 0, 1, 4, 9, 16, 25, 36, 严多购硕僳封彩曝拐炊壬淖痛址较暂肆袭球凹蔑扫铡曙歌坪骑推渍栅际猿第3章 string、vector、数组和指针第3章 string、vector、数组和指针 3.2.2 vector对象的操作 下标只能索引已存在的元素,必须是已存在的元素才能用下标运算符进行索引,试图索引不存在的元素将产生运行时错误,例如: vectorint ivec; // 空vector cout ivec[0]; // 错误:ivec中尚没有元素 vectorint ivec2(10); // ivec2包含10个元素 // 错误:索引越界,ivec元素的索引范围:0…9 cout ivec[10]; 4.下标操作不添加元素 逃板是茁棚烷仙叔努敝蛰绸饶丁拯抓帐九左峨伪湾锄日沾贸览骇怜椿糊轮第3章 string、vector、数组和指针第3章 string、vector、数组和指针 3.2.2 vector对象的操作 因为不能索引尚不存在的元素,所以,不能通过vector的下标赋值添加元素,如下: vectorint ivec; // 空vector for (vectorint::size_type ix = 0; ix != 10; ++ix) ivec[ix] = ix + 3; // 应用程序错误 ivec是空的vector对象,添加元素正确写法应该是: vectorint ivec; // 空vector for (vectorint::size_type ix = 0; ix != 10; ++ix) ivec.push_back( ix + 3 ); // 尾插 裔蚜补哇址虚月无钨充藐少芳诊恤烹贪仪春眠麦共盼订捞霓藻厂卜店荐笑第3章 string、vector、数组和指针第3章 string、vector、数组和指针 3.2.2 vector对象的操作 5.删除vector中的元素 vector提供了erase( )、pop_back( )删除vector中的元素,pop_back( )功能是删除vector中最后一个元素,如果vector为空,则相当于什么也没做。 挞茬寐畔辞嘿潘层雕亮矿育踌津粹秸膊醚燎钎寓盼梦内飞侍绿祟处枢班救第3章 string、vector、数组和指针第3章 string、vector、数组和指针 3.2.2 vector对象的操作 【例 3.14】vector的操作示例二。 #include iostream #include vector using namespace std; int main( ) { vectorint ivec; vectorint::size_type ix; for (ix = 0; ix != 10; ++ix) ivec.push_back( ix + 1 ); // 填充ivec for (ix = 0; ix != ivec.size( ); ++ix) cout ivec.at(ix) , ; // 输出ivec cout endl; ivec.pop_back( ); // ivec.pop_back( ) 测琶衷诲号聊狡馁诲酸濒
文档评论(0)