gpt4 book ai didi

c++ - 动态添加一行到 std::string 二维 vector 数组

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:50 36 4
gpt4 key购买 nike

我正在尝试创建一个动态的 2d std::string vector ,但在添加新行时遇到了问题:

std::vector<std::vector<std::string>> hops_vector;

int Hop = 0;

for (Hop = 0; Hop < RouteHops; Hop++)
{
char HopIPString[20];
HopIPString[0] = 0;
RouteTestGetHopTimedOut(TestHandle, Hop, &HopTimedOut);
std::string thehop = std::to_string(Hop + 1);

//If the hop hasn't been registered yet
if (hopsstring.find(thehop) == std::string::npos) {
vector<int> row; // Create an empty row
hopsstring += thehop+","; // Add hop number to hop string

//Add columns for pings per hop + IP and Loss/No Loss
for (int j = 0; j < PingsPerHop+2; j++) {
row.push_back(j); // Add an element (column) to the row
}

hops_vector.push_back(row); // Add the row to the main vector
hops_vector[Hop][0] = thehop;
}
}

hops_vector.push_back(row); 给我一个没有过载错误的实例。我假设因为 hops_vector 是一个 std::string vector 。将其更改为 int 可以解决该问题,但我无法将字符串添加到 vector 中!

最佳答案

来自评论:

修复编译器错误的简单方法是替换vector<int> row;std::vector<std::string> row(PingsPerHop+2, ""); (创建一个充满“空”字符串的 vector )并删除 for循环尝试填充它。

然而,@PaulMcKenzie 指出了一种使用 std::map<std::string, std::vector<int>> 的不同方法,其中字符串是跳数, vector 保存与之关联的整数,(很可能)是一种更好的方法(在效率和概念上)

关于c++ - 动态添加一行到 std::string 二维 vector 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431127/

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