word(gui-6ren">
gpt4 book ai didi

C++:将字符串转换为 vector ,其中每个元素都是该字符的 vector

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

C++ 中有没有办法将字符串转换为字符 vector 的 vector ?目前,我正在这样做:

std::string guide = "ACGCAC"; 
std::vector< std::vector<char> > word(guide.begin(), guide.end());

但是,正常的索引方式(使用 .at())和设置不起作用。如果我尝试将具有此 vector 的元素设置为另一个 vector (见下文),它不起作用。

word[loc] = bases; //where bases = std::vector<char> and loc = int 

我正在尝试执行与下面的 Python 代码等效的操作,但是是在 C++ 中。感谢您的任何见解。

word = [[letter] for letter in guide]

最佳答案

这个:

std::vector<std::vector<char>> word(guide.begin(), guide.end());

并没有按照您的想法行事。您希望 guide 中的每个 char 用于构建大小为 1 的 vector,其中包含单个 char。但实际上它所做的是尝试从 char 构造一个 vector - 实际上有一个构造函数:#3 :

explicit vector( size_type count, const Allocator& alloc = Allocator() );

也就是说,对于您的第一个字符 'A',您不是在构造一个包含字符 'A' 的 vector ,而是在构造一个包含65 个'\0'。这是因为 char 可以隐式转换为 size_t

只需手动执行您想执行的操作:

std::vector<std::vector<char>> as_individual(std::string const& s) {
std::vector<std::vector<char>> v;
v.reserve(s.size());
for (char c : s) {
v.push_back({c});
}
return v;
}

关于C++:将字符串转换为 vector ,其中每个元素都是该字符的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50105866/

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