【问题标题】:How insert *char in vector <string> "[i]"? [C++]如何在向量 <string> "[i]" 中插入 *char? [C++]
【发布时间】:2017-06-29 15:03:53
【问题描述】:

对不起,我的英语不好

我有char *c,我需要在vector &lt;string&gt; 的“i”位置插入

有人可以帮忙吗?

【问题讨论】:

  • 对于向量在插入之前是否有大于、等于或小于i 元素,答案会有很大差异。是哪一个?
  • 您是否尝试查看documentation
  • @Curious 等于或小于相同情况
  • @Slava 少一等于不同于多于 2 少于(如果您尝试概括)
  • @Curious 我的意思是大于或等于是相同的。小于没有任何意义。

标签: c++ string vector char


【解决方案1】:

char * 可以(隐式)转换为std::string,然后将其插入到适当的位置:

vec.insert( vec.begin() + i, std::string( c ) );

当然,您需要确保vec 的大小大于或等于i。详情可见documentation

【讨论】:

    【解决方案2】:

    要在向量中插入内容,您应该使用其中一种方法insert。例如

    #include <iostream>
    #include <vector>
    #include <string>
    #include <iterator>
    
    int main() 
    {
        std::vector<std::string> v = { "Christian", "Assis" };
        const char *s = "Hello";
        size_t i = 0;
    
        v.insert( std::next( v.begin(), i ), s );
    
        for ( const auto &s : v ) std::cout << s << ' ';
        std::cout << std::endl;
    
        return 0;
    }
    

    程序输出是

    Hello Christian Assis 
    

    您可以添加检查位置i的值是否小于或等于向量中的元素个数。

    例如

    v.insert( std::next( v.begin(), v.size() < i ? v.size() : i ), s );
    

    【讨论】:

    • 感谢斯拉瓦和弗拉德!! :) 对不起这个问题,我只是用 C 编程,我需要插入 C++ 的变量。我理解你的咒骂,他们奏效了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多