gpt4 book ai didi

c++ - 如何打印出 char** vector 的内容

转载 作者:行者123 更新时间:2023-11-28 07:45:45 31 4
gpt4 key购买 nike

所以,

我想打印出一个 vector 的内容;我已经为它尝试了一个迭代器,但这并不好

for(vector<char**>::const_iterator i=myVec.begin();i!=myVec.end();i++) {
cout<<**i<<endl;
}

这行不通,我在想我需要两个迭代器(上面的迭代器是外部迭代器,内部迭代器是这样的:

  for(vector<char*>::const_iterator j=???;j!=??;j++) {....}

但我还没能让它工作。

谢谢。

最佳答案

似乎在这里工作得很好:

#include <iostream>
#include <vector>

int main()
{
const char* sentence1[] = {"foo", "bar", "baz"};
const char* sentence2[] = {"xyzzy", "frob", "plugh"};
std::vector<const char**> vec = {sentence1, sentence2};

for (auto i : vec) {
for (size_t w = 0; w < 3; ++w) {
std::cout << i[w] << ' ';
}
}
std::cout << '\n';
}

这将打印:

foo bar baz xyzzy frob plugh

The above is C++11. If you don't have that, you'll need to change the vector initialization and the for loop:

std::vector<const char**> vec;
vec.push_back(sentence1);
vec.push_back(sentence2);

for (std::vector<const char**>::iterator it = vec.begin();
it != vec.end(); ++it)
{
for (size_t w = 0; w < 3; ++w) {
std::cout << (*it)[w] << ' ';
}
}

如您所想,您需要假设每个句子的字数相同。如果您不想这样,您可以创建一个新的数据结构,该结构还包含每个句子的单词量以及句子 vector 。

受虐狂是一个很好的练习,但出于实际目的,您可能应该切换到 vector ,这样您就可以更轻松地迭代单词。

关于c++ - 如何打印出 char** vector 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907413/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com