vs下的输出结果如下
.天地玄黄 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰余成岁 闰余成岁
8 0 8 8 8 8 8 8
天地玄黄 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰余成岁 律吕调阳
8 0 8 8 8 8 8 8
闰余成岁 7
律吕调阳 7
#include<iostream>
#include<cstdlib>
#include<vector>
#include<deque>
#include<algorithm>
using namespace std;
template <typename Container>
void print(Container c) {for_each(c.begin(), c.end(), [](auto i) {cout << i << " "; });cout << endl;}
template <typename Container>
void printlen(Container c) {for_each(c.begin(), c.end(), [](auto i) {cout << strlen(i) << "\t"; });cout << endl;}
int main()
{
vector<const char*> cvec;
cvec.push_back("天地玄黄");
cvec.push_back(string("宇宙洪荒").c_str());
const char* v3 = "日月盈昃";
cvec.push_back(v3);
char v4[] = "辰宿列张";
cvec.push_back(v4);
const char* v5 = "寒来暑往";
cvec.push_back(v5);
cvec.push_back("秋收冬藏");
cvec.push_back((const char*)"闰余成岁");
cvec.push_back("闰余成岁");
deque<char*> cdeq;
cdeq.push_back(const_cast<char*>("天地玄黄"));
cdeq.push_back(const_cast<char*>((string("宇宙洪荒")).c_str()));
char c3[] = "日月盈昃";
cdeq.push_back(c3);
const char* c4 = "辰宿列张";
cdeq.push_back(const_cast<char*>(c4));
const char* c5 = "寒来暑往";
cdeq.push_back(const_cast<char*>(c5));
string s("秋收冬藏");
char c[100];
strncpy_s(c, s.size() + 1, s.c_str(), s.size() + 1);
cdeq.push_back((char*)c);
cdeq.push_back((char*)"闰余成岁");
const size_t sz = 9;
const char c6[sz] = "律吕调阳";
char c7[sz] = "";
strncpy_s(c7, sz, c6, strlen(c6) + 1);
cdeq.push_back(c7);
print<vector<const char*>>(cvec);
printlen<vector<const char*>>(cvec);
print<deque<char*>>(cdeq);
printlen<deque<char*>>(cdeq);
if (cvec.size() > cdeq.size())return EXIT_FAILURE;
pair<vector<const char*>::iterator, deque<char*>::iterator> result;
result = mismatch(cvec.begin(), cvec.end(), cdeq.begin(),
[](const char* s1, char* s2)->bool {
size_t sa = strlen(s1);
size_t sb = strlen(s2);
return sa == sb ? not strncmp(s1, s2, sa) : false;
});
if (result.first != cvec.end())
{
cout << *result.first << "\t" << distance(cvec.begin(), result.first) << endl;
cout << *result.second << "\t" << distance(cdeq.begin(), result.second) << endl;
}
else
{
cout << "onajikamoshiremasenn" << endl;
}
return EXIT_SUCCESS;
}