判断一个对象是否是另一个的前缀
2014-10-09 16:54
141 查看
题目:给出两个int型的vector对象,编写程序判断一个对象是否是另一个对象的前缀。如果两个vector对象的长度不相同,假设较短的vector对象长度为n,则只对这两个对象的前面n个元素做比较。例如,对于(0,1,1,2)和(0,1,1,2,3,5,8)这两个vector,你的程序应该返回true。
在调试过程中遇到一些问题,现总结如下:
(1)while 循环中使用文件结束符 ctrl+z 来控制文件输入的结束,顺序为ctrl+z加一个回车再ctrl+z加一个回车。如图所示:
(2)vector 对象的操作之 push_back(),也就是“插入”(push)到 vector 对象的”后面“(back)。
(3)while循环中用文件结束符来控制输入的结束时,要注意在下一个循环输入之前,要将流 cin 恢复为有效状态(使用 cin.clear())。
(4)size_type 类型为成员函数 size 返回的类型,使用 size_type 类型时,必须指出该类型是在哪里定义的(vector<int>::size_type //ok ; vector::size_type //error)。
(5)注意不要把 size1==size2 误写成 size1=size2。
#include <iostream> #include <vector> using namespace std; int main() { vector <int> vec1,vec2; int temp; //读入第一个vector对象的元素 cout<<"please enter the first vector:"<<endl; while (cin>>temp)//******(1) { vec1.push_back(temp);//******(2) cin>>temp; } //读入第二个vector对象的元素 cout<<"please enter the second vector:"<<endl; cin.clear();//******(3) while (cin>>temp) { vec2.push_back(temp); cin>>temp; } //比较两个vector对象 vector<int>::size_type size1,size2;//******(4) size1=vec1.size(); size2=vec2.size(); bool result=true; for (vector<int>::size_type i =0;i!=(size1>size2 ? size2:size1);++i) { if (vec1[i]!=vec2[i]) { result=false; break; } } //输出结果 if (result) { if (size1<size2) cout<<"vec1 is prefix of vec2"<<endl; else if(size1==size2)//******(5) cout<<"the two vector are equal"<<endl; else cout<<"vec2 is prefix of vec1"<<endl; } else cout<<"no prefix"<<endl; return 0; }
在调试过程中遇到一些问题,现总结如下:
(1)while 循环中使用文件结束符 ctrl+z 来控制文件输入的结束,顺序为ctrl+z加一个回车再ctrl+z加一个回车。如图所示:
(2)vector 对象的操作之 push_back(),也就是“插入”(push)到 vector 对象的”后面“(back)。
(3)while循环中用文件结束符来控制输入的结束时,要注意在下一个循环输入之前,要将流 cin 恢复为有效状态(使用 cin.clear())。
(4)size_type 类型为成员函数 size 返回的类型,使用 size_type 类型时,必须指出该类型是在哪里定义的(vector<int>::size_type //ok ; vector::size_type //error)。
(5)注意不要把 size1==size2 误写成 size1=size2。
相关文章推荐
- 假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。
- 判断一个序列是否是另一个序列的前缀
- 检验一个vector对象是否是另一个vector对象的前缀
- poj 3630 Phone List 【字典树】【判断一个字符串集里面 是否存在一个字符串是另一个字符串前缀】
- HDOJ-1671 Phone List 字典树的应用----判断一组字符串中是否有一个字符串是另一个字符串的前缀(字典树第二类应用)。
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- [VB.NET]请问在VB.net中怎样判断一个字符串是否是另一个字符串的子字符串?
- 判断一个对象是否存在, 谁更快?
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- javascript下判断一个对象是否具有指定名称的属性的的代码
- [VB.NET]如何在一个窗体M中判断另一个窗体N中是否存在一个名称为A的事件?
- 判断一个对象是否存在
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- 怎样判断一个对象是否为空
- C#中,怎么判断一个字符串包含是否不包含另一个字符串
- java中判断一个对象是否实现了某个接口
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- .net C# 如何判断一个对象是否具有某个方法
- 判断一个dataset的数据是否包含另一个dataset的数据
- 如何判断一个字符串中是否包含另一个字符串