刚开始使用队列,需要朝着正确的方向努力。
"编写一个读取两个句子并将其读入两个独立队列的程序。然后,程序应通过比较两者之间的字符来确定句子是否相同。当遇到两个不相同的字符时,程序应显示一条消息,指示句子不相同。如果两个队列包含相同的字符集,则应说明它们是相同的消息。"
我尝试了一些事无济于事。我无法理解我应该做的事情,以便从字符串中访问字符,以便我可以比较两者。
#include <iostream>
#include <string>
#include <deque>
using namespace std;
int main()
{
deque<string> str1, str2;
string s;
cout << "Enter string #1: ";
cin >> s;
str1.push_back(s);
cout << "Enter string #2: ";
cin >> s;
str2.push_back(s);
// both queues have their respective strings. what now?
}
答案 0 :(得分:0)
我认为您必须使用std::queue
而不是std::deque
。
程序看起来像
#include <iostream>
#include <queue>
#include <string>
int main()
{
std::string s1;
std::cout << "Enter sentence #1: ";
std::getline( std::cin, s1 );
std::string s2;
std::cout << "Enter sentence #2: ";
std::getline( std::cin, s2 );
std::queue<char> q1;
for ( char c : s1 ) q1.push( c );
std::queue<char> q2;
for ( char c : s2 ) q2.push( c );
while ( !q1.empty() && !q2.empty() && q1.front() == q2.front() )
{
q1.pop();
q2.pop();
}
if ( q1.empty() && q2.empty() )
{
std::cout << "\nThe two sentences are identical" << std::endl;
}
else
{
std::cout << "\nThe two sentences differ" << std::endl;
}
return 0;
}