gpt4 book ai didi

C++遍历字符串 vector

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:03 24 4
gpt4 key购买 nike

所以我最近发现了 map 和 vector 的使用,但是,我在尝试找到一种循环遍历包含字符串的 vector 的方法时遇到了麻烦。

这是我尝试过的:

#include <string>
#include <vector>
#include <stdio>

using namespace std;

void main() {
vector<string> data={"Hello World!","Goodbye World!"};

for (vector<string>::iterator t=data.begin(); t!=data.end(); ++t) {
cout<<*t<<endl;
}
}

当我尝试编译它时,出现了这个错误:

cd C:\Users\Jason\Desktop\EXB\Win32
wmake -f C:\Users\Jason\Desktop\EXB\Win32\exbint.mk -h -e
wpp386 ..\Source\exbint.cpp -i="C:\WATCOM/h;C:\WATCOM/h/nt" -w4 -e25 -zq -od -d2 -6r -bt=nt -fo=.obj -mf -xs -xr
..\Source\exbint.cpp(59): Error! E157: col(21) left expression must be integral
..\Source\exbint.cpp(59): Note! N717: col(21) left operand type is 'std::ostream watcall (lvalue)'
..\Source\exbint.cpp(59): Note! N718: col(21) right operand type is 'std::basic_string<char,std::char_traits<char>,std::allocator<char>> (lvalue)'
Error(E42): Last command making (C:\Users\Jason\Desktop\EXB\Win32\exbint.obj) returned a bad status
Error(E02): Make execution terminated
Execution complete

我使用 map 尝试了相同的方法并且成功了。唯一的区别是我将 cout 行更改为:

cout<<t->first<<" => "<<t->last<<endl;

最佳答案

添加iostream头文件并将stdio更改为cstdio

#include <iostream>
#include <string>
#include <vector>
#include <cstdio>

using namespace std;

int main()
{
vector<string> data={"Hello World!","Goodbye World!"};
for (vector<string>::iterator t=data.begin(); t!=data.end(); ++t)
{
cout<<*t<<endl;
}
return 0;
}

关于C++遍历字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40234801/

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