C++ 为什么是';这个向量不给我和数组一样的输出吗?

C++ 为什么是';这个向量不给我和数组一样的输出吗?,c++,vector,C++,Vector,如果向量只是一个功能更强的数组,那么它是否会像数组一样将基元素的地址存储在它的名称中?为什么我没有获取存储在指定索引位置的元素的值,而是获取完整的字符串作为输出? 这是我的密码 #include <iostream> #include <vector> using namespace std; int main() { vector<string> v(20,"hello"); char a[]={"hello"}; cout&

如果向量只是一个功能更强的数组,那么它是否会像数组一样将基元素的地址存储在它的名称中?为什么我没有获取存储在指定索引位置的元素的值,而是获取完整的字符串作为输出? 这是我的密码

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<string> v(20,"hello");
     char a[]={"hello"};

    cout<<v[1]<<"\n"; //this gives hello as the output

    cout<<a[1];       //this gives e


    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
向量v(20,“你好”);
字符a[]={“你好”};
cout为什么我没有获取存储在指定索引位置的元素的值,而是获取作为输出的完整字符串

因为在向量中使用字符串类型而不是char

改变

vector<string> v(20,"hello");
向量v(20,“你好”);

向量v={h',e',l',l',o','\0'}; 您将得到“e”。

为什么我没有得到存储在指定索引位置的元素的值,而是得到作为输出的完整字符串

因为在向量中使用字符串类型而不是char

改变

vector<string> v(20,"hello");
向量v(20,“你好”); 到

向量v={h',e',l',l',o','\0'};
你会得到'e'。v[1]是[1]成员,如果是字符串向量,你已经将该成员初始化为“hello”。a[1]是
a
的[1]成员,你已经将其初始化为
'h','e','l','l','o',0


v
的每个成员都是一个完整的字符串。
a
的每个成员都是单个字符。

v[1]是[1]成员,如果是字符串向量,您已将该成员初始化为“hello”。a[1]是
a
的[1]成员,您已将其初始化为
'h'、'e'、'l'、'l'、'o',0


v
的每个成员都是一个完整的字符串。
a
的每个成员都是单个字符。
std::vector
字符串的容器。因此,第一个元素是整个字符串,第二个元素是另一个整个字符串,依此类推
字符的容器。因此,第一个元素是字符,第二个元素是另一个字符,依此类推。

std::vector
字符串的容器。因此,第一个元素是整个字符串,第二个元素是另一个整个字符串,依此类推。而
字符[]
是一个包含
字符的容器。因此,第一个元素是字符,第二个元素是另一个字符,依此类推。

您在这里定义了完全不同的类型

vector<string> v(20,"hello");
这将创建一个包含“hello”的(C样式)字符串。数组的每个元素都是一个字符


当然,当你要求打印一个字符串时,整个字符串都会被打印出来。同样,当你要求打印一个字符时,一个字符也会被打印出来。

你在这里定义了完全不同的类型

vector<string> v(20,"hello");
这将创建一个包含“hello”的(C样式)字符串。数组的每个元素都是一个字符

当然,当你要求打印一个字符串时,整个字符串都会被打印出来。同样,当你要求打印一个字符时,一个字符也会被打印出来。

a
std::vector
甚至与
char[]
不一样,因为它将是一个字符串的集合,而不是一个字符串(
v
的每个元素都是
std::string
a
的每个元素都是
char
)。
vector v(20,“hello”);
您正在创建20个std::string并打印第二个。
char a[]={“hello”}
您正在创建一个字符数组并打印第二个字符。
std::vector
甚至与
char[]
不同,因为它将是字符串的集合,而不是单个字符串(
v
的每个元素都是
std::string
,而
a
的每个元素都是
char
).vector v(20,“hello”);
您正在创建20个std::字符串并打印第二个字符串。
char a[]={“hello”};
您正在创建一个字符数组并打印第二个字符。